2
考慮到我有一個類,從Draper::Decorator
繼承,像這樣:布店 - 幫助理解代表與「到」和「前綴」
class PageDecorator < Draper::Decorator
delegate_all
delegate :title, :name, :region, :keys,
to: :glass_decorator,
prefix: :glass
def full_title
full_title = []
full_title << glass_title if glass_title
full_title.join(" ")
end
有一個裝飾在另一個文件名爲GlassDecorator
在同一目錄。
delegate
這一行實際上是什麼意思?這是否意味着當我嘗試訪問title
,name
,region
,keys
屬性/方法時,它們將被委託給GlassDecorator
?prefix:
部分是什麼意思?對於
full_title
方法,是否glass_title
部分嘗試查找在GlassDecorator
的title
屬性/方法?如果是這樣的話,是否僅僅因爲delegate
這條線纔有可能?如果是這樣,是否使:prefix
成爲可能?
謝謝。
嗯,我說得對,如果我在代碼中保留所有內容並且省略了'prefix:'部分,並且我嘗試訪問'title',那麼將首先查找'PageDecorator',那麼如果它不存在,'Glass'將在'GlassDecorator'中查找,如果失敗了,在裝飾對象中? – yanhan
我不這麼認爲。如果你有「委託」,它不會看你當前的模型。如果您在PageDecorator上有一個名爲「title」的方法,它將使委託的過載超載。 –
哦,好的,謝謝Taryn! – yanhan