可以/我应该自定义ActiveAdmin更新操作,还是使用模型回调?

时间:2014-04-08 22:03:58

标签: ruby-on-rails activeadmin

我的Rails应用有活动和用户。在ActiveAdmin中,可以通过表单操作编辑事件。如果编辑包括将用户附加到事件,我需要向该用户发送消息。我想我需要自定义更新操作或在我的事件模型中的:after_update回调中触发消息发送。

我认为添加回调更有意义,但我很好奇是否可以在ActiveAdmin中自定义更新操作。是吗?

2 个答案:

答案 0 :(得分:1)

您可以编辑ActiveAdmin控制器操作,但是如果更新后执行的操作在更新管理面板外部的表单时相同,那么我认为最好使用回调。为什么要写更多代码?

http://activeadmin.info/docs/8-custom-actions.html#modify_the_controller

  ActiveAdmin.register Post do

    controller do
      # This code is evaluated within the controller class

      def define_a_method
        # Instance method
      end
    end

  end

答案 1 :(得分:0)

这绝对有可能,在您的ActiveAdmin模型中添加:

controller do
def update_resource(object, attributes)
  attributes.first[:your_attribute] = ...
  object.send(:update_attributes, *attributes)
end

希望它有所帮助!