9

私の ActiveAdmin 登録済みモデルには、「アクティブな」ブール値フィールドがあります。一度に複数のレコードを「アクティブ化」するバッチ アクションを含めたいと考えています。

私は次の指示に従おうとしています:

http://activeadmin.info/docs/9-batch-actions.html

カスタムバッチアクションを実行するため、2 つの問題が発生しています。

私はこれを持っています:

ActiveAdmin.register Venue do

  batch_action :deactivate do |selection|
    Venue.find(selection).each do |v|
      v.active = false
    end
  end
end

何かを有効にしようとすると、テンプレートが見つからないというエラーが表示されます。「batch_action」テンプレートを探しています。テンプレートも追加する必要があることについて、そのドキュメントには何も表示されませんでした。その名前のテンプレートを追加すると、エラーが消えてテンプレートが表示されます...もちろん、これは私が望むものではありません。インデックスを再表示するだけです。

どちらの場合も (テンプレートの有無にかかわらず)、モデルは更新されていません。選択したレコードを選択するだけで、他に何もしないログを確認できます。

4

1 に答える 1

21

私は次のことを行うことで問題を取り除きました:

batch_action :activate do |selection|
  Venue.find(selection).each do |v|
    v.active = true
    v.save
  end
  redirect_to :back  #this ensures any current filter stays active
end

「保存」の部分は明らかなようですが、ドキュメントの例は最初の試みで私を驚かせました。これは、ドキュメントにとってより適切な例のようです。

于 2012-12-20T02:10:48.270 に答える