数時間詰まったので、ここで共有します。
#注意点
decorate_association
かdecorate_accosiations
でdecorate
したmodel
はobject.
無しで呼ばないと、decorater
で定義したmethodを呼べません。
##例
app/models/inquiry.rb
class Inquiry < ActiveRecord::Base
has_many :messages, dependent: :destroy
end
app/models/message.rb
class Message < ActiveRecord::Base
belongs_to :inquiry
end
app/decorator/inquiry_decorator.rb
InquiryDecorator < Draper::Decorator
delegate_all
decorate_associations :messages#, with: MesssageDecorator
def deco_last_message_created_at
#object.messages.last.deco_created_at # undefined error
messages.last.deco_created_at # object. が不要
end
end
app/decorator/message_decorator.rb
MessageDecorator < Draper::Decorator
delegate_all
def deco_created_at
object.created_at.localtime.strftime("%Y/%m/%d %H:%M")
end
end
以上です。
誰かのお役に立てれば幸いです。
#参考
https://github.com/drapergem/draper
http://www.rubydoc.info/github/drapergem/draper/Draper/Decorator