Rails 4 - 强参数 - 相关属性

时间:2016-08-15 07:19:11

标签: ruby-on-rails strong-parameters

我有一个名为Trl的模型和一个名为Project的模型。协会是:

项目

belongs_to :Trl

的Tr1

has_many :projects

在我的项目表单中,我要求用户选择一个Trl,项目表单有:

<%= render partial: 'trls/project', locals: { f: f } %>  

那部分有:

<%= f.input :trl, label: false do %>
  <%= f.select :trl, Trl.all.map { |t| [t.title, t.id] }, 
                            include_blank: false, 
                            prompt: 'Select one' %>

当我保存所有这些并尝试使用它时,我收到一条错误消息:

undefined method `title' for nil:NilClass

我不确定是否需要在项目控制器强参数中包含trl_attribute [:title]。填写表单的用户无法创建标题,他们只能从已经制作的列表中选择一个。

这种背景是否需要包含在强对策中?

1 个答案:

答案 0 :(得分:0)

是的,您必须将其包含在白色参数列表中。在这里,您的错误与Nil对象有关,首先您需要解决它。

试试这个:

<%= f.select :trl, Trl.all.map { |t| [t.try(:title), t.try(:id)] }, include_blank: false, prompt: 'Select one' %>

然后将其包含在strong parameters列表中。