干掉 ActiveAdmin

rog*_*rkk 0 ruby-on-rails activeadmin ruby-on-rails-4

我的 ActiveAdmin 安装中有多个资源共享很多相同的特征,例如:

  • 相同或相似的范围
  • 相同或相似的控制器方法(例如 action_methods)
  • show 动作中的相似属性(带代码块)
  • 编辑操作中的相似属性(带有代码块)

避免在不同资源之间重复此功能的最佳方法是什么?

我已经设置了装饰器以避免在索引视图中重复功能,但我不确定是否(以及如何?)这是否可以用于其他情况。

Kuk*_*nin 5

您也可以使用extend您的模块。例如:

module AccountManageable
  def has_manageable_account 
    permit_params :name, :email, :role, :avatar

    filter :name, as: :string
    filter :email, as: :string

    # ... other DSL methods
  end
end
Run Code Online (Sandbox Code Playgroud)

然后在您的管理员中

ActiveAdmin.register Admin do
  extend AccountManageable

  has_manageable_account
end
Run Code Online (Sandbox Code Playgroud)