【问题标题】:How to declare a deep nested resource in activeadmin?如何在 activeadmin 中声明深层嵌套资源?
【发布时间】:2021-01-28 17:23:50
【问题描述】:

我在 ActiveAdmin 中有三个资源,即用户、订单和订单项。

User => has_many :orders

User => has_many :order_items, through: :orders

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

admin/users/:user_id/orders/:order_id/order_items
admin/users/:user_id/orders/:order_id/order_items/:id
admin/users/:user_id/orders/:order_id/order_items/:id/new
admin/users/:user_id/orders/:order_id/order_items/:id/edit

我尝试使用以下代码,但它不起作用。

ActiveAdmin.register OrderItems do 

  belongs_to :order
  belongs_to :user
  controller do
    nested_belongs_to  :user, :order
    end
  end
end

如何使用 activeadmin 实现这一点?

提前谢谢你

【问题讨论】:

  • rake routes 显示的“不工作”是什么意思? Have you seen this?
  • @engineersmnky rake routes 结果如下。 admin/users/:user_id/order_items admin/users/:user_id/order_items/:id admin/users/:user_id/order_items/:id/new admin/users/:user_id/order_items/:id/edit

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


【解决方案1】:

将此添加到routes.rb 文件中

 namespace :admin do
    resources :users do
      resources :orders do
         resources :order_items
      end
    end
  end

但是我认为嵌套到这个级别是不合适的

【讨论】:

  • 我知道有这么深的嵌套路由不好。但是客户自己希望这样。我尝试了建议的方法,但在代码审查之后,ppl 拒绝了告诉它应该在活动管理资源本身中处理的代码。 @chrisgeeq
猜你喜欢
  • 1970-01-01
  • 2013-10-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多