J'ai deux classes:Rails 3 has_one routage
class User < ActiveRecord::Base
:has_one :foo
end
class Foo < ActiveRecord::Base
:belongs_to :user
end
Le Foo est en option.
J'ai créé le routage suivant:
resources :users do
resources :foo
end
Quels sont les résultats les routes suivantes:
GET /users/:user_id/foo(.:format) {:controller=>"foos", :action=>"index"}
user_foos POST /users/:user_id/foo(.:format) {:controller=>"foos", :action=>"create"}
new_user_foo GET /users/:user_id/foo/new(.:format) {:controller=>"foos", :action=>"new"}
GET /users/:user_id/foo/:id(.:format) {:controller=>"foos", :action=>"show"}
PUT /users/:user_id/foo/:id(.:format) {:controller=>"foos", :action=>"update"}
user_foo DELETE /users/:user_id/foo/:id(.:format) {:controller=>"foos", :action=>"destroy"}
edit_user_foo GET /users/:user_id/foo/:id/edit(.:format) {:controller=>"foos", :action=>"edit"}
Questions:
- Il semble que l'indice et Afficher les actions sont redondants. L'un d'eux devrait-il être retiré? Si oui, lequel? Le paramètre: id dans l'action Afficher semble inutile, car id_utilisateur est une clé étrangère dans la table foos et il n'y a qu'un foo par utilisateur. Est-ce que je me trompe?
- Je voudrais avoir un moyen gracieux de router vers l'action Nouvelle s'il n'y a pas de truc. Une option serait de tester @ user.foo.nil? dans l'action Afficher ou index du FooController, redirigez vers l'action Nouvelle. Y a-t-il un meilleur moyen?
Merci pour votre temps.
Je ne peux pas croire que j'ai raté ça. – craig
Merci pour l'info –