拨开荷叶行,寻梦已然成。仙女莲花里,翩翩白鹭情。
IMG-LOGO
主页 文章列表 Ruby中的物件方法是什么

Ruby中的物件方法是什么

白鹭 - 2022-02-18 2057 0 0

我在一个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热心网友回复:

objectRuby 中没有命名的方法

它发送讯息object给隐含接收器self(在其他一些语言,这将被称为“呼叫方法objectthis”)。

此方法似乎是由您正在使用的某个库定义的。但是,它不是您标记问题的库之一,因此很难判断它可能来自哪里。

标签:

0 评论

发表评论

您的电子邮件地址不会被公开。 必填的字段已做标记 *