0

システムのプライベートメッセージを作成しています。

チェックボックスをオンにしてすべてのオブジェクトをキャッチし、ユーザーがゴミ箱をクリックするとゴミ箱に送信し、スパムをクリックするとメッセージコントローラー内のスパムアクションに送信します。次の画像をご覧ください。

ここに画像の説明を入力

これは私のチェックボックスのhtmlです:

<input class="check" id="506c82001d41c82198000056" name="506c82001d41c82198000056" type="checkbox" value="506c82001d41c82198000056">

以下で生成されます:

<%= check_box_tag m.id, m.id, false, :class => "check" %>

削除ボタンとスパム ボタンは、次の形式のリンクです。

<%= link_to "Delete", delete_message_path %>
<%= link_to "Spam", spam_message_path %>

チェックボックス checkeck でマークされた結果を各アクションに送信するにはどうすればよいですか?

どうもありがとうございました!

4

1 に答える 1

1

純粋な html 実装が必要な場合は、フォームを単一のコントローラー アクションにルーティングし、そこから削除およびスパム ロジックを処理するか、それらのアクションにリダイレクトすることができます。

あなたの形で

<%= form_tag('/messages_cleanup', method: :put) %>
  <%= submit_tag "Delete" %>
  <%= submit_tag "Spam" %>

  <%= message.each do |m| %>
    <%= check_box_tag m.id, m.id, false, :class => "check" %>
  <% end %>
<% end %>

URL につながる 2 つのサブミット タグを使用できます。たとえば、/messages_cleanupどちらがmatch /messages_cleanup, :to => 'messages#cleanup'.

params[:commit]次に、メッセージコントローラーで、フィールドの送信タイプを確認できます。

def cleanup
  case params[:commit]
    when "Delete"
      # either handle delete logic here or redirect to delete path
    when "Spam"
      # either handle spam logic here or redirect to spam path
  end
end
于 2012-10-03T20:10:36.237 に答える