【问题标题】:How to declare a nested resource in activeadmin?如何在 activeadmin 中声明嵌套资源?
【发布时间】:2012-09-11 15:41:41
【问题描述】:

我有一个名为 User 的资源和另一个名为 Order 的资源。

我希望 Order 嵌套在 Users 中,这样我就可以拥有这些路由:

/users
/users/:id
/users/:id/new
/users/:id/edit
/users/:user_id/orders
/users/:user_id/orders/:id
/users/:user_id/orders/:id/new
/users/:user_id/orders/:id/edit

如何使用 activeadmin 做到这一点?

【问题讨论】:

    标签: ruby-on-rails activeadmin rails-routing


    【解决方案1】:

    只需将belongs_to选项添加到active_admin资源页面

    ActiveAdmin.register Order do
      belongs_to :user
    end
    

    【讨论】:

    • 它有效。虽然它还添加了默认路由:/orders、/orders/:id 等。
    【解决方案2】:

    @railscard 的回答部分正确,但如果您不想要 @bishma-stornelli 提到的 /order、/order/:id 等默认路由 - 您可以添加如下选项:

    ActiveAdmin.register Order do
      belongs_to :user, :optional => true
    end
    

    【讨论】:

    • 看起来他们已经更改了默认值,因为现在当我添加 optional: true 时,我可以同时访问 /users/:user_id/orders/orders(我一直在寻找)
    • 如果您仍然希望您的 belongs_to 资源在默认菜单和非嵌套路由中可用,您可以使用 :optional 选项。 active_admin docs
    猜你喜欢
    • 1970-01-01
    • 2013-10-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-31
    • 1970-01-01
    相关资源
    最近更新 更多