我的ActiveAdmin注册模型有一个“活动”布尔字段。我希望包含一个批处理操作来一次“激活”多个记录。
我正在尝试按照以下说明操作:
http://activeadmin.info/docs/9-batch-actions.html
进行自定义批量操作,我遇到两个问题。
我有这个:
ActiveAdmin.register Venue do
batch_action :deactivate do |selection|
Venue.find(selection).each do |v|
v.active = false
end
end
end
当我尝试激活某些内容时,我发现模板未找到错误。它正在寻找“batch_action”模板。我没有在该文档中看到有关需要添加模板的任何内容。如果我添加一个带有该名称的模板,则错误消失并显示模板......这当然不是我想要的。我希望它只是重新显示索引。
在任何一种情况下(有或没有模板),模型都不会更新。我可以在日志中看到它只是选择所选记录而不做任何其他操作。
答案 0 :(得分:20)
我通过以下方式解决了这些问题:
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
“保存”部分似乎很明显,但是文档中的示例在我第一次尝试时就抛弃了我。对于文档来说,这似乎是一个更相关的例子。