首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ActiveAdmin -如何自定义编辑操作?

ActiveAdmin -如何自定义编辑操作?
EN

Stack Overflow用户
提问于 2013-01-02 13:36:42
回答 2查看 10.1K关注 0票数 4

我有密码:

ActiveAdmin.register MyTable do控制器

代码语言:javascript
复制
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没有看到我的代码/它用自己的模板显示代码,而不是我的为什么?

EN

回答 2

Stack Overflow用户

发布于 2013-01-03 21:39:32

您应该能够通过form ActiveAdmin提供的DSL方法来做到这一点。更多的细节在documentation for ActiveAdmin和Formtastic中。

不幸的是,我不相信ActiveAdmin很好地允许您为newedit呈现一个完全不同的表单。使用文档中的部分呈现方法,但是可以基于@object.persisted?有条件地更改视图中的表单。

代码语言:javascript
复制
# 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 %>
票数 8
EN

Stack Overflow用户

发布于 2017-10-09 10:50:01

如果提供了render方法的完整路径,则可以呈现任意视图。就像这样:

代码语言:javascript
复制
# 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
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14123095

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档