ActiveAdmin没有装饰显示视图

时间:2015-07-17 17:11:00

标签: activeadmin decorator draper

我在我的Rails项目中使用ActiveAdmin。我使用Draper作为装饰,但我不明白为什么show view没有装饰。根据{{​​3}},只需在我的ActiveAdmin资源中添加decorate_with MyDecorator即可。

这是我的代码:

ActiveAdmin.register Home do
  ...
  decorate_with HomeDecorator

  show do
    attributes_table do # not being decorated
      row :content
      row :status
      row :image
      row :author_with_avatar
    end
  end
end

有人知道我的代码有什么问题吗?

1 个答案:

答案 0 :(得分:1)

当我遇到这个问题时,那是因为我customized the controller's find_resource method。在这种情况下,请务必返回手动装饰的对象:

def find_resource
  MyModel.find_by_some_unique_finder(params[:id]).decorate
end

如果所有其他方法都失败了,你可以使用这种方法强制它:

show
  attributes_table_for model.decorate do 
    row :decorator_method
    row(:custom_label) { |m| m.decorator_method }

有关详细信息,请参阅http://activeadmin.info/docs/6-show-pages.html