2011-05-06 56 views
0

我有一个has_many任务的Projects模型。rails select_tag关联编辑操作

在/任务/新的观点,我有一个选择标记,让我选择新任务的项目:

<%= f.label :project_id %> 
<%= f.select(:project_id, options_from_collection_for_select(@projects, "id", "name")) %><br /> 

这是在_form.html.erb部分也由称为编辑(任务/ 8 /编辑)。

但是,在编辑中,我得到了“当你没有想到它时,你有一个零对象!”错误。

我相信这是由于f.select没有调用Projects模型中以前选择的项目造成的。

有没有办法让_form.html.erb调用?

非常感谢。

回答

0

如果这没有帮助,后从new.html.erb和回溯的部分呼叫,但我相信这是两件事情之一:

您没有添加f变量的部分呼叫。 f是页面的局部变量,因此您需要使用:locals选项将它传递给局部变量。就像这样:

<%= render :partial, :locals => {:f => f} %> 

还是存在着@projects为零,确保它在控制器被设定的可能性。

+0

嗯。在任务控制器I具有: DEF编辑 @task = Task.find(PARAMS [:ID]):当地人=> {: @project = @ task.project 端 和添加后F =>˚F }到edit.html.erb,我得到未定义的局部变量或方法'f'为#<#:0x103af3238> – chris 2011-05-06 18:31:41

+0

我不认为这是一个局部问题。我删除了部分并将其放回到edit.html.erb文件中。我仍然得到“当你没有想到它的时候,你没有任何东西!”错误。我相信我只是没有将Project Id传回编辑模板,所以它被f.select弄糊涂了 – chris 2011-05-06 19:02:11

0

试试这个!
<%= render 'partial', :f => f %>
你的编辑操作中查看您将有 -
<%= render 'from', :f => f %>