假设我需要为帖子创建不同类型的创建/编辑页面,每个页面都优化了不同类型的帖子,将显示一些属性来编辑它们并隐藏其他页面。我想在顶部选择2或3个收集动作[“创建XX帖子”,“创建YY帖子”等]。我怎样才能做到这一点?
答案 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)
ActiveAdmin.register Post, as: "XxPost" do ... end
ActiveAdmin.register Post, as: "YyPost" do ... end
或者使用with different names子类化ActiveRecord模型并注册子类。