2011-05-06 48 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 %>