【问题标题】:Can't save record to database => jaar: nil无法将记录保存到数据库 => jaar: nil
【发布时间】:2016-05-21 13:24:25
【问题描述】:

我只是想在表单中添加另一个字段 (jaar),但它没有保存到数据库中。结果我得到了'nil'。

class AddJaarToStudents < ActiveRecord::Migration def change add_column :students, :jaar, :string end end

我的表单中的字段:

<%= f.input :jaar, label: 'Leeftijd'%>

提供的值(jaar/leftijd)是一个整数,会不会导致无法保存到数据库的问题?

亲切的问候,

伊夫

【问题讨论】:

    标签: ruby-on-rails integer rails-activerecord database-migration rails-migrations


    【解决方案1】:

    您是否在控制器的参数列表中将 jaar 列入白名单?如果没有,强大的参数会将其过滤掉。您应该在保存之前查看一下 jaar 是否存在。

    http://guides.rubyonrails.org/action_controller_overview.html#strong-parameters

    【讨论】:

    • 好的,我找到了解决方案!我在我的 application_controller 中允许了这些“学生”属性。在我添加 :jaar 之后,它起作用了。谢谢!
    【解决方案2】:

    另外,您能否检查以确保您已将 :jaar 添加到控制器的参数列表中。

    它可能没有保存,因为控制器没有将 :jaar 列发送到模型中。

    【讨论】:

    • 我的参数看起来像这样: params.require(:student).permit(availabilities_attributes: [ :id, :day, :available ]) 奇怪的是:一个学生有 :first_name, :last_name , :studie 等,但我在参数中找不到它们,这些属性保存在数据库中!即使我将 :jaar 添加到参数中,它也不起作用!
    • 谢谢布赖恩,我检查了我的 application_controller 并允许 :jaar!成功了,谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-07-19
    • 1970-01-01
    • 1970-01-01
    • 2021-05-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多