ActiveAdminのtable_forに渡したcollectionが勝手にdecorateされるようにする
1808 ワード
シチュエーション
showでhas_many関係にある子要素のテーブル表示する時なんかに。
実装
module TableDecoration
def build(obj, *attrs)
ActiveDecorator::Decorator.instance.decorate(obj)
super(obj, *attrs)
end
end
module ActiveAdmin
module Views
class TableFor < Arbre::HTML::Table
prepend TableDecoration
end
end
end
余談
もともとはalias_method_chainを使った実装を試していたのですが、メソッド名が変わる影響か、TableFor#build内で呼ぶsuperが機能しておらず、prependを使った方法に切り替えています。エラーにはならず、ただtrの中にtdがrenderされなかっただけで、詳細な理由は調査しきれていないです。
Author And Source
この問題について(ActiveAdminのtable_forに渡したcollectionが勝手にdecorateされるようにする), 我々は、より多くの情報をここで見つけました https://qiita.com/skuroki@github/items/bcc99e456463901e44fa著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .