我正在尝试为在ActiveAdmin中注册的模型创建一些常见/共享操作。 我有以下代码:
# app/admin/concerns/activatable.rb
module Activatable
def self.included(dsl)
dsl.member_action :deactivate, method: :put do
dsl.resource.deactivate!
redirect_to dsl.resource_path, notice: 'Deactivated.'
end
end
end
# app/admin/course.rb
ActiveAdmin.register Course do
include Activatable
# ...
end
当我运行
rails server
命令时,服务器立即停止并抛出以下错误:/Users/Doug/.rvm/gems/ruby-2.1.2/gems/activerecord-4.1.1/lib/active_record/
dynamic_matchers.rb:26:in `method_missing': undefined method `member_action' for
#<Class:0x00000101e79850> (NoMethodError)
DSL似乎没有与我的
course.rb
中相同的功能,其中来自activatable.rb
的代码正常工作(尽管没有dsl.*
)。有什么想法吗?