2011-05-01 7 views
0

jQuery submit()メソッドを使用して、特定のデータをRails update()メソッドに送信する方法がわかりません。 =>承認 -RoR link_toとjQuery submit()を使用して特定のフォームデータを送信する

<% form_for(vote, :remote => true) do |f| %> 
    <%= check_box_tag "selection", vote.id %> 
<% end %> 

... 

<%= link_to 'Vote Yes', ballots_path, :onclick => "$('.edit_vote').submit()", :class => "buttons" %> 
<%= link_to 'Vote No', ballots_path, :onclick => "$('.edit_vote').submit()", :class => "buttons" %> 

は基本的に「承認」と呼ば投票テーブルのbooleanフィールドがありますし、私は(投票はい上記の二つのリンクを介してこのフィールドを更新する:これらは私が働いているコードスニペットですtrue;投票No - >承認= false)。

私は<%= check_box_tag "selection"、vote.id%>を<%= f.check_box:approval%>としていましたが、フォームにはい/いいえボタンを付けることができましたが、これは機能I欲しかった実際に承認値にするにはYes/Noボタンが必要ですが、チェックボックスは単にそこにあるので、ユーザーは投票するエンティティを選択できます。

これは私が何をしようとしているの写真です:私はこれをやっていいと思う方法についてhttp://i.stack.imgur.com/QZqnw.png

任意のアイデア?

答えて

3

カスタムのonsubmitアクションを使用するリモートフォームの可能性があります。私は、フォーム自体を送信するのではなく、送信ボタンのクリックを偽装する方法について、Googleのヒントを見つけました。このように:これは名前のsubmitボタンがあると仮定している

:onclick => "this.form.submit.click();" 

「提出」。送信ボタンがない場合は、いつでも1つを追加して表示を非表示にして非表示にすることができます。

<%= submit_tag 'Opslaan', :name => 'submit', :style => 'display: none;' %> 
0

jQueryの.submit()メソッドは、単にフォームの「submit」イベントをトリガーします。言い換えれば、それはそのフォームの「送信」ボタンをクリックするのと同じように機能します。私はあなたがedit-voteのクラスで全体のリストをラップする形式を持っていると仮定しています。

最初の問題は、formタグをここにネストしている可能性があることです。フォームタグは入れ子にすることはできません。そうした場合は、まったく動作しても奇妙で予期しない動作が発生します。

各チェックボックスの前後にあるform_forを削除するだけです。 updateメソッドが投稿しているデータを受け入れるよう書かれていれば、それは動作するはずです。

関連する問題