我在一个helper中找到了一段action code,它的目的是改变controller中render JSON的API内容:
class Users::RefDecorator < Draper::Decorator
delegate_all
def ava
object.user.ava
end
User 是另一个模型,ava 是它的列。但什么是“物件”。开头是什么意思?
uj5u.com热心网友回复:
此装饰器继承自Draper::Decorator
并且object
是在 上定义的方法Draper::Decorator
。来自档案的参考:
它将作为第一个自变量传递给装饰器的initialize
.
uj5u.com热心网友回复:
在Draper::Decorator
作为父类的情况下,object
参考原始物件。
所以我想象你写了这样的东西:
user = SpecialUserClass.new
decorated_user = user.decorate
# or
decorated_user = Users::ReferrerProfileDecorator.decorate(user)
# now
decorated_user.object == user
虽然通过添加delegate_all
你不会经常看到它。来自原始 gem 档案:
uj5u.com热心网友回复:
object
Ruby 中没有命名的方法。
它发送讯息object
给隐含接收器self
(在其他一些语言,这将被称为“呼叫方法object
上this
”)。
此方法似乎是由您正在使用的某个库定义的。但是,它不是您标记问题的库之一,因此很难判断它可能来自哪里。
0 评论