我有一个名为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]。填写表单的用户无法创建标题,他们只能从已经制作的列表中选择一个。
这种背景是否需要包含在强对策中?
答案 0 :(得分:0)
是的,您必须将其包含在白色参数列表中。在这里,您的错误与Nil对象有关,首先您需要解决它。
试试这个:
<%= f.select :trl, Trl.all.map { |t| [t.try(:title), t.try(:id)] }, include_blank: false, prompt: 'Select one' %>
然后将其包含在strong parameters
列表中。