如何在ActiveAdmin gem中创建自定义页面

时间:2013-09-28 12:58:36

标签: ruby-on-rails ruby-on-rails-4 activeadmin

Ruby 2.0,Rails 4.0,PSQL 9.3

在ActiveAdmin文档中有一个示例:

ActiveAdmin.register_page "My Page" do
  content do
    para "Hello World"
  end
end

我在哪里放这个代码?文档说:

  

在上面的示例中,将在/ admin / my_page中创建一个新页面   标题为“我的页面”和“Hello World”的内容。

这意味着这样的文件会以某种方式自动创建?不过,我在app / admin下创建了一个名为import.rb的文件,菜单中的导入项确实出现了。但是,我无法使用HTML,因为此文件是.rb而不是.erb。我想,为了能够使用html,我需要在content方法中创建partial和den渲染。但是,当我查看app/views时,没有admin文件夹(仅layouts)。这是否意味着我需要在admin下创建文件夹app/views?如果是,我应该将我的部分放在哪里 - 直接放在app/views/admin下或新文件夹app/views/admin/import下?

我很抱歉菜单问题,但ActiveAdmin的文档非常适中。如果有人能够提供有关在ActiveAdmin中为新页面创建和添加内容所需步骤的详细说明,我将不胜感激。

1 个答案:

答案 0 :(得分:10)

文档的含义是,如果您创建新的自定义页面app/admin/my_page.rb,则此页面将在URL /admin/my_page中提供(如果您使用的是默认的ActiveAdmin配置)。

关于为my_page.rb呈现ERB或HAML部分内容,您可以这样做:

ActiveAdmin.register_page "My Page" do
  content do
    render :partial => 'about'
  end
end

这将在目录app/views/admin/my_page/下查看。如果目录不存在,请创建它们。此外,您仍然可以通过引用完整的模板路径(例如shared/sections/about)来指定其他目录,就像您对非ActiveAdmin控制器一样。