You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Rails中fundings表status字段无法存储数据问题求助

解决Rails中Funding模型status字段无法存储和显示的问题

看起来你已经搞定了数据库迁移和视图层的代码,但数据就是存不进去——控制台里status一直是nil,这几乎可以肯定是**强参数(Strong Parameters)**没配置对的问题。

Rails为了防止批量赋值安全漏洞,会要求在控制器里明确声明哪些参数是允许被写入模型的。你现在的情况就是表单提交的status参数被Rails过滤掉了,根本没传到模型里去。

解决步骤:

  1. 打开你的fundings_controller.rb文件,找到里面的funding_params方法(这个方法专门用来过滤允许的参数)。
  2. 把:status添加到permit方法的参数列表里,修改后的代码应该类似这样:
def funding_params
  params.require(:funding).permit(
    :describe_activity, :type_of_activity, :season, 
    :activity_details, :name_of_organisation, :activity_start_date,
    :number_of_weeks, :days_per_week, :hours_per_day,
    :program_registration_cost, :family_contribution, :other_funds,
    :other_fund_provider, :amount_requested, :child_id, :status # 这里加上status
  )
end
  1. 重启你的Rails服务器(开发环境下有时候热加载会生效,但重启更保险),然后重新提交表单试试。

验证结果:

提交完新的表单后,打开rails console查询对应的Funding记录,你应该能看到status字段已经有你输入的值了,show.html.erb页面也能正常显示这个字段的内容。

另外帮你确认了一下:你的迁移文件是正确的,schema里已经有status字段;视图层的表单和show页面代码也没问题,字段名都是:status,和模型对应上了,所以核心问题就是强参数没包含这个字段。

内容的提问来源于stack exchange,提问作者user9700954

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 09:51:17