表达式是什么model.create!
意思:
module StandardCreateAction
extend ActiveSupport::Concern
def create
model.create!(attributes)
render text: 'SUCCESS', status: self.class::SUCCESS_STATUS
end
end
我猜它在使用这个mixin的控制器中调用了同名模型?
表达式是什么model.create!
意思:
module StandardCreateAction
extend ActiveSupport::Concern
def create
model.create!(attributes)
render text: 'SUCCESS', status: self.class::SUCCESS_STATUS
end
end
我猜它在使用这个mixin的控制器中调用了同名模型?
在这种情况下,这与常见的 ruby 习语周围的语法糖model
无关,ActiveSupport::Concern
例如:
module SomeMixin
def self.included(base)
base.extend ClassMethods
base.class_eval do
def foo
end
end
end
module ClassMethods
def bar
end
end
end
在这种特定情况下model
,将解析为self.model
包含模块或由模块扩展的类。如果self.model
不能在那里解决,它会上升到类树。
我猜它是这样的:
def model
self.class_name.chomp("Controller").singularize.constantize
end
但是,在重新发明轮子之前,您可能需要查看ActionController::Responder和响应者 gem 。