刚开始学 active_admin 看了 railscast 的教程和源代码 有个小问题想请问一下: active_admin 对应的 views 代码在哪里?例如后台我有 products,但是找不到对应的 view 所以也不知道应该如何更改,而且似乎后台的 view 和前台也不是共用的... 巨迷茫
ActiveAdmin 的 Model, View 和 Controller 都是根据 admin 下面的 [model_name].rb 文件动态生成的,这就是它强大的地方。要想定制某些部分,可以参考 resource-customization
#1 楼 @zlx_star 比如我是用了 product,就是在 app/admin/下自动生成了 product.rb,以下是我的 product.rb 的代码
ActiveAdmin.register Product do
index do
column :title
column :price
column "Created Date", :created_at
default_actions
end
end
default_actions 自动生成了 edit,delete 等功能,我是点到 edit 之后,不知道这个页对应的是什么 view 代码了。edit 的路径是 http://localhost:3000/admin/products/4/edit 我是想修改 admin 的 produtcts 的 edit 界面:)
如果你要知道 admin/products/1/edit 的源代码是哪里来的,可以看 activeadmin form
如果你只是需要修改,可以参考上一个链接
#5 楼 @zlx_star 恩恩~我只是要修改,我想修改 admin/products/edit 页面里面的内容。我又仔细的看了一遍http://www.activeadmin.info/docs/5-forms.html 还是不太明白呢... 我自己的思路是从 MVC 来的,我想要修改 admin/products/edit 页面里面的内容,就应该改 views 的东西。现在后台是有显示内容的,可是不是我想要的。但是我也找不到 admin 对应 views 下面的哪个文件夹 555
active_admin 按照它的逻辑设计了一套 DSL,目的在于通过简单的配置就可以搭建一个完整的后台管理系统。 按照你这个需求,如果只是简单的修改可编辑的字段,不考虑布局和样式的话,用它的 DSL 语法,也就是直接在 from 后面跟一个 block 就够了
如果你需要的是修改整体的页面风格,样式布局的话,你可以在 views 下面建一个 admin 文件夹,然后建一个 products 文件夹放你需要的页面 比如说 edit.html.erb
#7 楼 @zlx_star 太详细了!好感动啊~~~ 因为是后台处理,其实我对页面风格没啥要求,只要基本的功能就可以。我之前没有客制化的时候,生成的 products/edit 无法上传图片,好奇怪啊.... 你的意思是加入这一段对吗?那我先试试看~~~
For example:
ActiveAdmin.register Post do
form :partial => "form"
end
Then implement app/views/admin/posts/_form.html.erb:
<%= semantic_form_for [:admin, @post] do |f| %>
<%= f.inputs :title, :body %>
<%= f.actions :commit %>
<% end %>