2012-05-16 64 views
1

我有一個用於新操作的rails視圖。我使用formtastic來生成表單,並且我可以選擇一個可能已經傳遞給控制器​​的形式模板。在formtastic url中傳遞可選參數

我想要做的就是確保這proforma_id獲得通過傳遞到我已經找到一種方法來做到這一點,當表單提交

的創建方法,但我想知道這是否是一個有點hackish如果沒有這樣做的一個更清潔更紅寶石般的方式:

<% params = {:proforma_id => @proforma.id} unless @proforma.nil? %> 
<%= semantic_form_for @document, :url => documents_path(params) do |f| %> 

也許我應該把PARAMS線控制器?

回答

2

兩種方式,你可以通過它,這取決於你是否希望它在URL,或者如果你想在POST數據......

正如你所發現的第一種方式是將它傳遞的網址PARAMS。您可以設置在控制器變量,但你也許可以逃脫

<%= semantic_form_for @document, :url => documents_path(:proforma_id => @proforma.try(:id)) do |f| %> 

如果額外的參數是nill,它只是將不會顯示出來,IIRC。

另一種選擇是隻把它的形式爲隱藏變量:

<%= hidden_field_tag :proforma_id, @proforma.try(:id) %> 
+0

樣子。嘗試(:ID)將是理想的,這和許多其他情況! – sgbett