ActiveAdmin:具有1个以上新表单页面和编辑表单页面的模型,以及每个页面的集合操作



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

如果你想对单个资源使用不同的形式,那么可能是这样的:

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 会像往常一样在您的应用程序/视图/帖子中查找部分_xx_form。这是进入更高级的ActiveAdmin自定义,所以确保你想要这样做,而不仅仅是普通的Rails。

您可以使用不同的名称多次注册活动记录模型,例如。

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

或者使用 STI 对活动记录模型进行子类化并注册子类。

最新更新