2011-08-15 69 views
2

我正在嘗試爲我的某個表單編寫編輯/更新方法。這個模型需要改變的唯一時間就是從「不活躍狀態」轉變爲「活躍狀態」。我想用按鈕來做到這一點,但我無法弄清楚如何使它工作。我的按鈕形式看起來是這樣的:在Rails中使用表單構建器時使用您自己的默認值

<% form_for [league, league_relation], :html => {:method => :put} do |form| %> 
<%= form.error_messages %> 
    <fieldset> 
    <%= form.hidden_field :state, LeagueRelation::ACTIVE %> 
    <%= form.submit 'Activate User' %> 
    </fieldset> 
<% end %> 

這種形式是更新我的LeagueRelation模型,這是一個聯盟模型的嵌套資源。默認狀態是1,這意味着不活動。在這裏,我試圖創建一個只有一個按鈕的Activate表單。由於這是一個表單生成器,因此Rails正試圖將league_relation.state的值放入隱藏字段中,而不是我想要的值。我知道使用hidden_​​field_tag會起作用,但我不想使用這種方法。有什麼建議麼?

感謝

回答

1

在這種情況下,我可能會使用button_to幫手,而不是form_for。也許是這樣的:

button_to "Activate User", 
      :url => path_to_update_url, 
      :method => :put, 
      :state => LeagueRelation::ACTIVE 

的button_to助手將自動創建一個包裹裏面的形式與您選擇提供的所有參數的按鈕。

編輯:

但如果你仍然想使用的form_for這時你可以手動指定這樣的值:

<%= form.hidden_field :state, :value => LeagueRelation::ACTIVE %> 
相關問題