2011-08-15 12 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 %> 

このフォームは、Leagueモデルのネストされたリソースである、私のLeagueRelationモデルを更新するためのものです。デフォルトの状態は1で、これは非アクティブを意味します。ここでは、Activateというボタンが1つのみのフォームを作成しようとしています。これはフォームビルダーなので、Railsはleague_relation.stateの値を、私が必要とする値ではなく、隠しフィールドに入れようとしています。私はhidden_​​field_tagの使い方がうまくいくことを知っていますが、私はこのアプローチを使いたくありません。助言がありますか?

おかげ

答えて

1

はこの場合、私はおそらく代わりにform_forbutton_toヘルパーを使用します。おそらく、このような何か:

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

button_toヘルパーは自動的に電源に選択し、すべてのパラメータを使用して、フォーム内にラップボタンを作成します。

編集:

<%= form.hidden_field :state, :value => LeagueRelation::ACTIVE %> 

けれどもをあなたはまだ、その後のform_forを使用したい場合は、手動でこのような値を指定することができます

関連する問題