1

我在我的 Rails 项目中使用 ActiveAdmin。我使用 Draper 作为装饰器,但我不明白为什么不装饰显示视图。根据文档,它应该可以decorate_with MyDecorator在我的 ActiveAdmin 资源中添加。

这是我的代码:

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

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

4

1 回答 1

1

当我遇到这个问题时,是因为我自定义了控制器的find_resource方法。在这种情况下,一定要返回一个手动修饰的对象:

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

于 2016-09-24T14:28:39.973 回答