Railsインデックスページの各行にチェックボックスを追加して、その行にフラグを付けます。このチェックボックスはオブジェクトの一部ではありません(データベースにチェックボックスブール値はありません)。インデックスページが表示されたら、ユーザーはチェックボックスをオンにして、次のプロセスで行のイベントをトリガーできます。
#objects/checkbox_index.html.erb
<table>
<tr>
<th>CheckBox</th>
<th>Object Name</th>
<th>Object ID</th>
</tr>
<%= @objects.each do |obj| %>
<tr>
<td><%= checkbox %></td>
<td><%= obj.name %></td>
<td><%= obj.id %></td>
</tr>
<% end %>
</table>
コントローラでは、プロセスは次のようになります。
@objects.each do |obj|
some_event if obj.checked
end
よくわからない質問がいくつかあります。
1. How to declare an array checkbox variable on the form and link it to each row of obj? We have been using `attr_accessor` to declare var for a form.
2. How to retrieve each row on checkbox_index form and pass them back to controller? We are using simple_form for new/edit.
誰かが私にこの種の行動の良い例を指摘したり、私たちが何を考えるべきかを提案したりできますか?どうもありがとう。
これに対する1つの解決策は、フォームの一部ではないチェックボックスにJavascriptイベントリスナーを追加することです。トリガーしたいアクションがデータベース呼び出しである場合は、ajaxを使用してそれを行うことができます。座ってそのすべてのJavaScriptコードを記述しないと、Rubyおよび疑似JavaScriptコードは次のようになります。
ルビー
<% @objects.each do |obj| %>
<%= check_box_tag, class: "checkbox" %>
<% end %>
Javascript / JQuery
$('#checkbox').on change {
if selected == selected
do what you are trying to do on $(this).element (like an ajax call)
else
undo what you did
end
}
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加