2012-02-19 10 views
0

ここではRailsの初心者ビットがありますので、私に同行してください。Ruby on Railsでラジオボタンとlink_toを使用する

各エントリのラジオボタンを最初にリストし、次にそのエントリのフィールドをテキストとして一覧表示することによって、テーブルに複数のエントリを一覧表示しようとしています。

これはうまくいきました。私が望むやり方も表示しています。しかし、問題は私が自分のボタンを使用しているときです。ユーザーがラジオボタンの1つを選択して特定のレシピを選択させ、ページの上部にある汎用の追加、編集、削除ボタンの1つをクリックして、選択したレシピのそれぞれのアクションを実行させることです。

これまでのところ、これは私のコードです:

<!--Action buttons at the top of page, supposed to communicate with the radio buttons --> 
<%= link_to("Show", {:action => 'show', :id => recipe.id}, :class => 'action show') %> 
<%= link_to("Edit", {:action => 'edit', :id => recipe.id}, :class => 'action edit') %> 
<%= link_to("Delete", {:action => 'delete', :id => recipe.id}, :class => 'action delete') %> 

<% @recipes.each do |recipe| %> 
<tr> 
    <td><%= radio_button_tag 'recipe', recipe, @recipe == recipe %></td> 
    <td><%= recipe.total_calories %></td> 
    <td><%=........15 more fields 
</tr>` 
<% end unless @recipes.nil? %> 

それは私のローカル変数やメソッド `レシピを」未定義のエラーを投げています。なぜ私はエラーが出ているのですか? Rubyは、ユーザーがラジオボタンで選択しているレシピを正確には把握していません。ラジオボタンをアクションボタンと通信させる方法を誰かに教えてもらえますか?

答えて

1

これを実行する最も簡単な方法は、アクションをサブミットボタンの値として含むフォームを作成することです。ような何か:

<%= form_tag(PATH_TO_YOUR_CONTROLLER) do %> 
    <%= submit_tag("Show") %> 
    <%= submit_tag("Edit") %> 
    <%= submit_tag("Delete") %> 

    RECIPE_LIST_HERE 
<% end > 

次に、あなたのコントローラが提出されたかのアクションやレシピルックアップする必要があるだろう(私はそれらをのparamsの下になると信じて[:コミット]とのparams [:レシピ])。

+0

私はlink_toでそれを行う方法はありますか?それとも、それはあまりにも複雑で時間がかかるのですか? – lordmarinara

+0

link_toにonClick javascriptハンドラを追加して、アクションを含む非表示のフォームフィールドを設定し、フォームを送信できます。しかし、あなたの目標があなたのボタンをリンクのように見せるだけなら、CSSを使うことができます。 –

+0

なんらかの理由で、私のコントローラのparams [:recipe]に "variableName = params [:recipe]"でアクセスしようとするたびに変数を記録しようとするたびに、nilとして出てきます。私はそれを正しくしていますか? – lordmarinara

関連する問題