model.create 是什么意思!在 Rails 控制器问题中使用时是什么意思?
What does model.create! mean when used in a Rails controller concern?
model.create!
表达式是什么意思:
module StandardCreateAction
extend ActiveSupport::Concern
def create
model.create!(attributes)
render text: 'SUCCESS', status: self.class::SUCCESS_STATUS
end
end
我猜它在使用此 mixin 的控制器中调用同名模型?
在这种情况下,model
与 ActiveSupport::Concern
无关,后者只是常见 ruby 习语的语法糖,例如:
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
将在包含模块或由模块扩展的 class 中解析为 self.model
。如果 self.model
在那里无法解决,它会上升到 class 树。
我猜是这样的:
def model
self.class_name.chomp("Controller").singularize.constantize
end
但是,在重新发明轮子之前,您可能想先看看 ActionController::Responder and the responders gem。
model.create!
表达式是什么意思:
module StandardCreateAction
extend ActiveSupport::Concern
def create
model.create!(attributes)
render text: 'SUCCESS', status: self.class::SUCCESS_STATUS
end
end
我猜它在使用此 mixin 的控制器中调用同名模型?
在这种情况下,model
与 ActiveSupport::Concern
无关,后者只是常见 ruby 习语的语法糖,例如:
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
将在包含模块或由模块扩展的 class 中解析为 self.model
。如果 self.model
在那里无法解决,它会上升到 class 树。
我猜是这样的:
def model
self.class_name.chomp("Controller").singularize.constantize
end
但是,在重新发明轮子之前,您可能想先看看 ActionController::Responder and the responders gem。