2011-05-22 50 views
1

新手問題爲什麼我的查詢字符串參數傳遞給我的看法

網址:

/categories/new?parent_id=6 

控制器:

def new 
    @category = Category.new(:parent_id => params[ :parent_id ]) 
end 

查看:

<%= form_for(@category) do |f| %> 
<%= f.hidden_field :parent_id %> 
<% end %> 

來源頁面:

<input id="category_parent_id" name="category[parent_id]" type="hidden" /> 

爲什麼這個值沒有被傳遞?

編輯:我之後意識到我沒有:parent_id在我的模型類的我attr_accessible一部分。一切都按照現在的樣子工作。謝謝你們的幫助。

+0

我們需要多一點的去與這裏比爾。然而,請嘗試一下,讓我們知道。 Category.new(params [:parent_id])並在視圖中添加<%= debug(params)%>並查看輸出。 – CharlesJHardy 2011-05-22 21:40:36

+0

我想你應該檢查nested_attributes。你可能需要那個來讓你的代碼更加結構化。 http://railscasts.com/episodes/196-nested-model-form-part-1 http://railscasts.com/episodes/197-nested-model-form-part-2 – 2011-05-22 21:53:04

+0

對不起@Ceilingfish,那在這個問題上是一個錯字。代碼是正確的。 – Bill 2011-05-22 22:01:02

回答

2

@Ceilingfish之後編輯的經驗之談

試試這個:

<%= form_for(@category) do |f| %> 
    <%= f.hidden_field :parent_id, :value => params[:parent_id] %> 
<% end %> 
+0

我得到一個消息的異常:對'未定義的方法 '合併' 「6」:String' – Bill 2011-05-22 21:58:12

+2

我認爲他的意思是'<%= f.hidden_​​field:parent_id,:value => params [:parent_id]%>'。但是,如果對象具有適當的屬性設置,它應該被自動填充。 – Ceilingfish 2011-05-22 21:59:53

+0

謝謝@Ceilingfish;) – apneadiving 2011-05-22 22:02:44

0

您試圖從表單中的隱藏字段中讀取值,但它正在作爲URL中的查詢參數發送。

相關問題