ActiveAdmin:超过1个新的&模型编辑每个表单页面和集合操作

时间:2018-06-04 21:14:15

标签: ruby-on-rails forms activeadmin

假设我需要为帖子创建不同类型的创建/编辑页面,每个页面都优化了不同类型的帖子,将显示一些属性来编辑它们并隐藏其他页面。我想在顶部选择2或3个收集动作[“创建XX帖子”,“创建YY帖子”等]。我怎样才能做到这一点?

2 个答案:

答案 0 :(得分:1)

如果您想为单个资源使用不同的表单,那么可能是这样的:

action_item :new_xx_post do
  params = { post: { type: 'XX' } }
  link_to 'New XX Post', new_post_path(params)
end

controller do
  def new
    build_resource
    render resource.type == 'XX' ? 'xx_form' : 'yy_form'
  end
end

Rails会在您的app / views / posts中正常查找_xx_form部分内容。这是进入更高级的ActiveAdmin自定义,所以一定要做到这一点,而不仅仅是vanilla Rails。

答案 1 :(得分:0)

您可以多次注册ActiveRecord模型enter image description here,例如

ActiveAdmin.register Post, as: "XxPost" do ... end
ActiveAdmin.register Post, as: "YyPost" do ... end

或者使用with different names子类化ActiveRecord模型并注册子类。