2


1

Rails-チェックボックスを使用して複数のオブジェクトを選択し、実行するアクションを選択できます

オブジェクトのリスト用のチェックボックスを作成できるようにしたいと思います。 次に、選択したオブジェクトに対して実行するいくつかのアクションをユーザーに提供します。 I.e. 削除、アーカイブなど。

ライアンのスクリーンキャストは知っていますが、選択したオブジェクトの複数のアクションへのリンクを作成する方法については説明していません。 1つのアクションのURLと送信ボタンを含むform_tagを作成することを示しただけです。

2 Answer


3


2つの方法でできると思います。

最初に:1つのフォームに必要なだけボタンを追加できます。

<%= f.submit "Action 1" %>
<%= f.submit "Action 2" %>
<%= f.submit "Action 3" %>

そして、それらはすべて、確認できる1つのアクションに送信されます。

if params[:commit] == "Action 1"
  do some stuff for action 1
elsif params[:commit] == "Action 2"
  do other stuff
... and so on
end

別の方法は、いくつかのjsを使用することです。 たとえば、ユーザーが「アクション2」ボタンをクリックすると、フォームの「アクション」パラメーターが変更され、このアクションにデータが送信されます。

編集:翻訳されたウェブサイトの場合、次のようにできます:

<%= f.submit (I18n.t :action_1) %>

およびコントローラー内:

if params[:commit] == I18n.t :action_1
...
end

そしてen.ymlに以下を追加します:

action_1: Action 1

pl.ymlに追加:

action_1: Akcja 1

等々。


1


送信ボタンの名前はいつでも変更できます。 params [:commit]の代わりにparams [:button_name]を探してください。

update_manyオブジェクトの機能を処理するには、コントローラーに何らかのメソッドが必要です。 たぶんディスパッチする前のフィルター…​