我正在开发一个Rails项目,该项目具有如下定义的嵌套资源。
resources :projects do
resources :entries
end
对于entries#new
表单,我想在路径project_id
中将projects/project_id/entries/new
硬编码为条目中project_id
的{{1}}字段views目录。我写的时候:
form_for
我收到以下错误:
= f.label :project_id
%br
= f.select :project_id, @project
如何将@project作为该字段发送到表单而不会出现f.select错误?我相信f.select需要一个集合,所以它不喜欢我只给它一个对象作为它的第二个参数。
感谢您的帮助!
答案 0 :(得分:2)
我猜您在控制器的新方法中有@entry
,如下所示:
def new
@entry = Entry.new
# etc.
您可以改用:
def new
@entry = @project.entries.build
# it will set project_id to the @project.id
并在视图中:
= f.hidden_field :project_id
如果您不想直接在视图中使用project_id进行初始化:
= f.hidden_field :project_id, value: @project.id