STI sınıfının temel sınıfı için rota alın 3 model, Kişi, Yer ve Thing ile bir raylı uygulamasına sahip olduğumu varsayalım. Thing'in tek bir tablo devralması kullandığını söyleyin, bu yüzden FancyThing ve ScaryThing alt sınıfları vardır. Sonra map.resources :people, :places, :things
ile tanımlanan yollar vardır. Yani FancyThings ve ScaryThings için hiçbir denetleyici yok, ThingsController her iki türü de ele alır.Rails
Şimdi, her şeyin bağlantılarının bir listesini gösteren bir kodun olması gerektiğini söylüyorum. Benim görünümünde bu kodu varsa: öğenin bir Kişi veya yer olduğunu
<% @items.each do |item| %>
<%= link_to item.name, item %>
<% end %>
, bu polymorphic_path
doğru rotayı üreten ilgilenir, gayet iyi çalışıyor. Ama eğer öğe bir FancyThing veya ScaryThing ise, bu patlar, çünkü hiçbir yol olmadığı fancy_thing_path
'u kullanmayı deneyecektir. Bir şekilde thing_path
'u kullanmak istiyorum. İdeal olarak, bir şekilde alt sınıfların rotayı oluşturmak için taban sınıfını kullanması gerektiğini gösteren, Thing ve/veya alt sınıfları üzerinde bir yöntem olacaktır. Bunun için şık bir çözüm var mı?
Bu, rayların geliştirilmesi için bir [açık bilet] (http://dev.rubyonrails.org/ticket/10454) 'dir. Bununla nasıl başa çıkılacağına dair öneriler için bilete bakın. – MarkusQ