ana kaynağından bağımsız tüm öğeleri listelemek için Foo
'a ait iç içe geçmiş kaynak Bar
var. Herhangi bir Foo
'a ait olan tüm Bar
nesnelerini başarıyla listeleyebilirim. Ama aynı zamanda, ait oldukları Foo
nesnesinden, birlikte listelenen Bar
öğeyle birlikte bir görünüm oluşturabilmek istiyorum.Raylar 4 - Bir iç kaynak için dizin indeksini nasıl eklerim?
modeli yapısı şöyledir:
foo_bars GET /foos/:foo_id/bars(.:format) bars#index
POST /foos/:foo_id/bars(.:format) bars#create
new_foo_bar GET /foos/:foo_id/bars/new(.:format) bars#new
edit_bar GET /bars/:id/edit(.:format) bars#edit
bar GET /bars/:id(.:format) bars#show
PATCH /bars/:id(.:format) bars#update
PUT /bars/:id(.:format) bars#update
DELETE /bars/:id(.:format) bars#destroy
foos GET /foos(.:format) foos#index
POST /foos(.:format) foos#create
new_foo GET /foos/new(.:format) foos#new
edit_foo GET /foos/:id/edit(.:format) foos#edit
foo GET /foos/:id(.:format) foos#show
PATCH /foos/:id(.:format) foos#update
PUT /foos/:id(.:format) foos#update
DELETE /foos/:id(.:format) foos#destroy
Benim ihtiyacım şudur: Ben bu yapılandırmasından beklenen yolları alabilirsiniz
# config/routes.rb
resources :foos do
resources :bars
end
: olarak
# app/models/foo.rb
class Foo < ActiveRecord
has_many :bars
end
# app/models/bar.rb
class Bar < ActiveRecord
belongs_to :foo
end
yönlendirme tanımlanırbağlamında kapsam dışı olan bars#index
için bir yol oluşturmak. Diğer bir deyişle, ben aslında istiyorum: Ben sığ seçeneği kullanılarak denedim
bars GET /bars(.:format) bars#index
, böylece: documentation başına endeks eylemi:
# config/routes.rb
resources :foos, shallow: true do
resources :bars
end
Ancak bu desteklemez.
Bunu yapmanın en iyi yolu nedir? Kapsamı belirlemek için bir before_filter
kullanarak here yararlı bir Yığın Taşması tartışması vardır, ancak 2009'dan beri. Hem denetleyicinin hem de config/routes.rb
dosyasının uygun şekilde nasıl kurulacağına dair herhangi bir özel kılavuz için teşekkür ederiz!
'Kaynaklar: barlar 'ayrı ayrı eklenmiyor mu? –