我在一個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。來自檔案的參考:
#object?Object(只讀)也稱為:
model回傳被裝飾的物件。
它將作為第一個引數傳遞給裝飾器的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 檔案:
方法已通過 delegate_all 呼叫在裝飾器上可用
uj5u.com熱心網友回復:
Ruby中的物件方法是什么
objectRuby 中沒有命名的方法。
但什么是“物件”。開頭是什么意思?
它發送訊息object給隱含接收器self(在其他一些語言,這將被稱為“呼叫方法object上this”)。
此方法似乎是由您正在使用的某個庫定義的。但是,它不是您標記問題的庫之一,因此很難判斷它可能來自哪里。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/398136.html
