2013-10-09 40 views
0

我有一個訂單資源,在用戶嵌套:如何創建兩個主要和嵌套ActiveAdmin資源?

ActiveAdmin.register Order do 
    belongs_to :user 
end 

# Routes at: 
# /admin/users/:user_id/orders/... 

我現在也想創建一個訂單資源,爲的總體視圖。理想情況下,我只是這樣做:

ActiveAdmin.register Order do 
end 

# Routes at: 
# /admin/orders/... 

但是這不起作用,因爲它創建相同的基礎類(我假設)。

它的出現基於this,我應該能夠使用as: 'all_orders',但實際上這仍似乎影響同一類,而像/admin/users/:user_id/all_orders/...

因此,與路線結束了,我怎麼能有既爲了資源建立和獨立經營,使用orders在URL兩者兼而有之?

回答

0

我認爲這可能是最好的選擇,詳細的here

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

# Routes at: 
# /admin/orders/... 
# /admin/users/:user_id/orders/... 

我想有兩個做不同的事情的選項,所以在那裏他們可以單獨定義的選項仍然堅持不勝感激。如果沒有更好的選擇,我會在這裏留下這個答案,因爲這是合理的。

+0

其實不知道這樣做我需要什麼,當我越來越彆扭錯誤...最好我想能夠使用'只有:index'的整體版本,然後鏈接到特定用戶其餘版本。 – Colin

0

另一種解決方案,這是非常哈克但確實提供了我需要的是這樣的:

# models/order.rb 
class Order < ActiveRecord::Base 
    belongs_to :user 
end 

 

# models/order_alias.rb 
class OrderAlias < Order 
end 

 

# admin/user/order.rb 
ActiveAdmin.register Order do 
    belongs_to :user 
end 

 

# admin/order.rb 
ActiveAdmin.register OrderAlias, as: 'AllOrder' do 
    menu label: 'Orders' 
    index title: 'Orders' do 
    # ... 
    end 
end 

這仍然有all_orders在URL中,但它是最接近我能找到的解決方案。任何更優雅的讚賞。