Posted at

Draperでdecorateした元のオブジェクトを参照する

More than 5 years have passed since last update.

decorateしたもののメソッド(例えばUser#name)を呼ぼうとしたら、NoMethodErrorと出てきてしまった。


最初の方法

<% (@user.methods - Object.new.methods).each do |method| %>

<%= method %>
<br>
<% end %>

で見ると、

user, object, model, source

なるものを発見。どうやらdecorateする元らしい。なので、

user.object.name

とすれば動くようになった。


あとで調べると…

http://qiita.com/tachiba/items/6f0d56598de639adae1d#3-5

https://github.com/drapergem/draper#delegating-methods

を見るに、

class UserDecorator < Draper::Decorator

delegate_all
end

とすればいいらしい。