Dans les rails 2 version de mon application j'ai cette ressource définieRails 3 problème avec personnalisé nommé itinéraire de ressources après la mise à jour des rails 2
map.resources :albums, :as => 'music', :has_many => :reviews
Cela m'a donné quelques itinéraires standard:
album GET /music/:id(.:format) {:controller=>"albums", :action=>"show"}
new_album GET /music/new(.:format) {:controller=>"albums", :action=>"new"}
J'ai également une association polymorphique mis en place comme suit:
class Album < ActiveRecord::Base
has_many :reviews, :as => :reviewable
end
class Review < ActiveRecord::Base
belongs_to :reviewable, :polymorphic => true
end
Cela signifiait que je pouvais créer un lin k à ma ressource de l'album grâce à mon examen en utilisant un chemin polymorphes
<%= review.reviewable.title, polymorphic_path(review.reviewable) %>
Cependant, depuis la mise à niveau des rails 3 J'ai changé mes itinéraires fichier à afin de se conformer au nouveau routeur:
resources :music, :controller => 'albums' do
resources :reviews
end
Et bien plus propre, il brise le lien polymorphes, à savoir
<%= review.reviewable.title, polymorphic_path(review.reviewable) %>
Je termine avec le message d'erreur suivant
undefined method `album_path'
Si je regarde dans mes rails 3 itinéraires générés avec "routes râteau" je vois
music GET /music/:id(.:format) {:action=>"show", :controller=>"albums"}
qui est différent de ce qui était là avant dans les rails 2, à savoir
album GET /music/:id(.:format) {:controller=>"albums", :action=>"show"}
Alors Je suppose que c'est ce qui brise les choses.
Je suis un peu incertain cependant quant à la façon de le réparer sans revenir aux rails 2 routes qui seront dépréciées avec des rails 3.1. Toute aide serait appréciée. Merci.