feedbacks
管理者がまだレビューしていないすべてを表示するフォームは次のとおりです。
それぞれの横に 2 つのラジオ ボタンがあり、値またはfeedback
で受け入れるか拒否するかを選択します。1
2
<% form_tag moderate_feedbacks_path, :method => :put do %>
<table>
<% @all_feedbacks.each do |feedback| %>
<tr>
<td><%= radio_button_tag :review_option, '1', false, :name => feedback.id %></td>
<td><%= radio_button_tag :review_option, '2', false, :name => feedback.id %></td>
<td><%= feedback.name %></td>
<td><%= feedback.email %></td>
<td><%= feedback.message %></td>
</tr>
<% end %>
</table>
<%= submit_tag 'Apply' %>
<% end -%>
私がやりたいのは、 をクリックしたとき、選択したそれぞれのフィールドをその値でsubmit_tag
更新すること、またはreview_option
feedback
radio_button_tag
1
2
ご覧のとおり、フォームは正常に機能しますが、コントローラー部分で立ち往生しています。
def moderate_feedbacks
Feedback.update_all(["review_option = ?", ????])
redirect_to admin_feedbacks_path
end
これらのラジオ ボタンからコントローラーにパラメーターを渡す方法を教えてください。ありがとうございました。
pshtmlソース:
<input id="review_option_1" name="3" type="radio" value="1">
<input id="review_option_2" name="3" type="radio" value="2">
名前の由来feedback.id
submit_tag を押したときのログは次のようになります。
Processing Admin::FeedbacksController#moderate_feedbacks (for 127.0.0.1 at 2012-10-16 15:36:20) [PUT]
Parameters: {"commit"=>"Apply", "3"=>"2", "4"=>"1"}
ここで、3 はフィードバックの ID - 2 はラジオの値、4 はフィードバックの ID - 1 はラジオの値です。
後raise.params["feedback.is"].inspect
Parameters:
{"commit"=>"Apply",
"3"=>"1",
"4"=>"1",
"_method"=>"put"}