我有密码:
ActiveAdmin.register MyTable do控制器
def edit
#---This code doesn't work
render :template=>"myEditTemplate.html",:layout =>"active_admin"
end
def new
#--code in this section works fine
render :template=>"myNewTemplate.html",:layout =>"active_admin"
end结束
我想看到我的编辑模板代码在url下面是这样的:/admin/mytable/1/edit,但activeadmin没有看到我的代码/它用自己的模板显示代码,而不是我的为什么?
发布于 2013-01-03 21:39:32
您应该能够通过form ActiveAdmin提供的DSL方法来做到这一点。更多的细节在documentation for ActiveAdmin和Formtastic中。
不幸的是,我不相信ActiveAdmin很好地允许您为new和edit呈现一个完全不同的表单。使用文档中的部分呈现方法,但是可以基于@object.persisted?有条件地更改视图中的表单。
# app/admin/post.rb
ActiveAdmin.register Post do
form :partial => "form"
end
# app/views/admin/post/_form.html.erb
<%= semantic_form_for [:admin, @post] do |f| %>
<% if @post.persisted? %>
Edit Form (Maybe rendered via a partial)
<%= f.inputs :title, :body %>
<%= f.buttons :commit %>
<% else %>
New Form
<% end %>
<% end %>发布于 2017-10-09 10:50:01
如果提供了render方法的完整路径,则可以呈现任意视图。就像这样:
# app/admin/post.rb
ActiveAdmin.register Post do
controller do
def edit
render 'admin/posts/myEditTemplate', :layout =>"active_admin"
end
def new
render 'admin/posts/myNewTemplate', :layout =>"active_admin"
end
end
end
# app/views/admin/posts/myEditTemplate.html.erb
# Your erb view for edit here
# app/views/admin/posts/myNewTemplate.html.erb
# Your erb view for new herehttps://stackoverflow.com/questions/14123095
复制相似问题