LoginSignup
2
3

More than 5 years have passed since last update.

active_decorator 0.9.0 は関連モデルオブジェクトを自動デコレート

Last updated at Posted at 2017-04-05

昨日リリースされた active_decorator 0.9.0 で,関連モデルオブジェクトが自動的に
デコレートされるようになったようです。

Changelog や HISTORY の類が無いので,何が変わったのか,にわかには分からないのですが,README.md の「Features」の四番目にこっそり

fetching already decorated Active Record model object's association

が追加されてました。

今までは,あらわにデコレートするコードを書くか,関連モデルオブジェクト部分の
ビューを別のテンプレートに切り出すしかありませんでした。

すばらしい!

なんのこっちゃ?

たとえば,一つの Publisher を表示する publishers#show のビューにおいて,
Publisher にぶら下がっている(belongs_to している)Book たちの一覧を
表示するとしますよね。

コントローラーで

@publisher = Publisher.find(params[:id])

すると,これがビューに渡されたときに自動的にデコレートされ,この @publisher に対し,PublisherDecorator のメソッドが呼べます。

しかし,バージョン 0.8.0 までの場合,@publisher.books の要素たちはデコレートされないので,そいつらに対し BookDecorator のメソッドを呼び出そうとしても NoMethodError になっていました。

バージョン 0.9.0 では @publisher.books たちも自動でデコレートされるので,何も考えずとも同じテンプレート内で BookDecorator のメソッドが呼べる,というわけです。

2
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3