4

我有代码:

ActiveAdmin.register MyTable 做控制器做

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 下看到我的编辑模板代码,如下所示: http:// * /admin/mytable/1/edit 但 activeadmin 看不到我的代码/它显示的代码带有自己的模板而不是我的为什么?

4

2 回答 2

8

您应该可以form通过 ActiveAdmin 提供的 DSL 方法来执行此操作。更多详细信息在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 %>
于 2013-01-03T21:39:32.493 回答
2

如果您提供渲染方法的完整路径,您可以渲染任何您喜欢的视图。像这样的东西:

# 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 here
于 2017-10-09T10:50:01.483 回答