2016-08-15 2 views
0
는 , 그것은 잘 작동

레일 액티브 관리 경로는 내가 세 가지 자원이있는 경우 나 하나 개의 자원에 belongs_to를 선언 할 때

ActiveAdmin.register Order 
ActiveAdmin.register Material do 
    belongs_to :order 
end 

batch_action_admin_order_materials POST  /admin/orders/:order_id/materials/batch_action(.:format) admin/materials#batch_action 
      admin_order_materials GET  /admin/orders/:order_id/materials(.:format)    admin/materials#index 
            POST  /admin/orders/:order_id/materials(.:format)    admin/materials#create 
      new_admin_order_material GET  /admin/orders/:order_id/materials/new(.:format)   admin/materials#new 
     edit_admin_order_material GET  /admin/orders/:order_id/materials/:id/edit(.:format)  admin/materials#edit 
       admin_order_material GET  /admin/orders/:order_id/materials/:id(.:format)   admin/materials#show 
            PATCH  /admin/orders/:order_id/materials/:id(.:format)   admin/materials#update 
            PUT  /admin/orders/:order_id/materials/:id(.:format)   admin/materials#update 
            DELETE  /admin/orders/:order_id/materials/:id(.:format)   admin/materials#destroy 

하지만, 경우 아래의 경로를 생성 사라 동일한 리소스가 다른 리소스에 속한 집합을 추가합니다. 위의 경로는 모두 사라졌습니다. 아래 경로가 생성됩니다.

ActiveAdmin.register Supplier 
ActiveAdmin.register Material do 
    belongs_to :supplier 
end 



batch_action_admin_supplier_materials POST  /admin/suppliers/:supplier_id/materials/batch_action(.:format) admin/materials#batch_action 
      admin_supplier_materials GET  /admin/suppliers/:supplier_id/materials(.:format)    admin/materials#index 
             POST  /admin/suppliers/:supplier_id/materials(.:format)    admin/materials#create 
      new_admin_supplier_material GET  /admin/suppliers/:supplier_id/materials/new(.:format)   admin/materials#new 
     edit_admin_supplier_material GET  /admin/suppliers/:supplier_id/materials/:id/edit(.:format)  admin/materials#edit 
       admin_supplier_material GET  /admin/suppliers/:supplier_id/materials/:id(.:format)   admin/materials#show 
             PATCH  /admin/suppliers/:supplier_id/materials/:id(.:format)   admin/materials#update 
             PUT  /admin/suppliers/:supplier_id/materials/:id(.:format)   admin/materials#update 
             DELETE  /admin/suppliers/:supplier_id/materials/:id(.:format)   admin/materials#destroy 

나는이 두 경로를 모두 갖고 있기를 희망하며 사라지지 않기를 바랍니다. 아무도 도와 드릴 수 있습니다. 감사합니다!

+0

안녕하세요. 스택 오버플로를 환영합니다. 당신이 의미하는 바를 알아내는 것이 어렵습니다 ... "잘 작동하지 않습니다"라는 말로 확대 할 수 있습니까? 설명해 주시겠습니까? 관측하는 내용과 예상했던 내용, 실제로받은 오류 메시지를 알려주십시오. –

답변

0

그래, 문제는 ActiveAdmin.register Material을 두 번 쓰는 것이고 두 번째 것은 첫 번째 것을 덮어 쓰는 것입니다. 대신에 두 번 작성

(또한 당신이 belongs_to 라인 소문자를 사용해서는 안)

는, 그 안에 모두 belongs_to에 한 번 쓰기하는 것은 예 :

ActiveAdmin.register Order 
ActiveAdmin.register Supplier 
ActiveAdmin.register Material do 
    belongs_to :order 
    belongs_to :supplier 
end 
+0

도움 주셔서 감사합니다. order.rb에 첫 번째 ActiveAdmin.register Material을 쓰고 supplier.rb에 두 번째를 썼다. 그럼, 당신이 언급 한 코드는 어디에 넣을까요? 추신 : 주문과 재료 사이의 관계는 일대 다, 공급 업체 및 재료 또한 일대 다. 주문과 재료 사이에는 직접적인 관계가 없습니다. –

+0

나는 첫 번째 줄을 공급자의 두 번째 줄에 넣고 나머지는 새로운 파일 인 –

+0

이라는 새 파일에 넣었습니다. 안녕하세요 Taryn, 다시 한 번 감사드립니다. 나는 당신의 솔루션을 시도했지만 여전히 두 가지 문제가 있습니다. 하나는,'ActiveAdmin.register Material'을 material.rb로 옮긴 후입니다. 페이지는 Admin :: Orders # index'에있는 ActionController :: UrlGenerationError를 보여줍니다 : 경로가 일치하지 않습니다 {: action => "index", : controller => "admin/materials"} 필수 키 누락 : [: order_id]' 'raise ActionController :: UrlGenerationError, message' –

0

당신은 이름 변경을 시도 할 수 있음 자원 : Rename Resource

그래서 material.rb는 conatin 것 :

ActiveAdmin.register Material do 
    belongs_to :order 
end 

그리고 당신은 포함 할 새 파일 supplier_materials.rb 만들 수 있습니다

ActiveAdmin.register Material, as: "Supplier Material" do 
    belongs_to :supplier 
end 

이 두 개의 별도의 자원으로 일하는 것이 있습니다.