4

配列の値を渡すにはどうすればよいですか?選択したチェックボックスの。

ビューで:

= check_box_tag 'user_message_ids[]', user_message.id, false

= link_to "<button>Bulk Delete</button>".html_safe, profile_message_path(user_message), :id => 'user_message_ids', :confirm => "Are you sure?", :method => :delete

この領域のいずれかに送信ボタンを配置できますか。

このように:

= form_tag checked_messages_path do
  = check_box_tag 'user_message_ids[]', user_message.id, false
--------objects---------------------------------------------
--------objects---------------------------------------------
--------objects---------------------------------------------
--------objects---------------------------------------------
= submit_tag "Delete Checked"
4

2 に答える 2

20

form_tagブロックを使う

<% form_tag delete_mutiple_items_path do %>
  <table>
    <thead>
      <tr>
        <th></th>
      </tr>
    </thead>
    <tbody>
      <% @items.each do |item| %>
      <tr>
        <td><%= check_box_tag "items[]", item.id %></td>
      </tr>
      <% end %>
    </tbody>
  </table>
  <%= submit_tag "delete Checked" %>
<% end %>

{"item_ids[]" => ["1", "2", "3"]} のように、ID の配列をコントローラーに渡します。

したがって、これらのIDで何でもできます

参考までに: http://railscasts.com/episodes/165-edit-multiple?view=asciicast

更新 (1 つの小さな問題)

ここから: http://railscasts.com/episodes/17-habtm-checkboxes?view=asciicast

更新方法にはまだ小さな問題が 1 つあります。すべてのカテゴリから製品を削除するためにすべてのチェックボックスをオフにすると、更新は製品が含まれていたカテゴリを削除できません。category_ids製品のパラメータ ハッシュに表示されます。これcategory_idsは、更新されていないことを意味します。

これを修正するには、products コントローラーを変更してcategory_idsパラメーターが update アクションに渡されない場合に空の配列になるように設定する必要があります。演算子を使用してこれを実行しRuby's ||=、更新アクションの上部に次のように追加できます。

params[:product][:category_ids] ||= []

これにより、チェックボックスがどれもチェックされていない場合、製品が正しく更新され、カテゴリに含まれなくなります。

于 2012-08-15T07:07:54.573 に答える
1

form タグの周りにボタン タグを追加する必要があります。を使用して入力タグ データを送信することはできませんlink_to

于 2012-08-15T07:02:59.273 に答える