Rails:如何在form_for中硬编码字段

时间:2013-08-16 18:28:01

标签: ruby-on-rails forms

我正在开发一个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需要一个集合,所以它不喜欢我只给它一个对象作为它的第二个参数。

感谢您的帮助!

1 个答案:

答案 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