Lors de l'apprentissage de Rails, j'ai créé une application avec un Domains
contrôleur de imbriquée ci-dessous un Customers
contrôleur. Je suis à l'aide de Rails 2.3.4 et ça a été une expérience d'apprentissage. J'ai réussi à obtenir le dessous de routage mis en place:
customer_domains GET /customers/:customer_id/domains(.:format) {:controller=>"domains", :action=>"index"}
POST /customers/:customer_id/domains(.:format) {:controller=>"domains", :action=>"create"}
new_customer_domain GET /customers/:customer_id/domains/new(.:format) {:controller=>"domains", :action=>"new"}
edit_customer_domain GET /customers/:customer_id/domains/:id/edit(.:format) {:controller=>"domains", :action=>"edit"}
customer_domain GET /customers/:customer_id/domains/:id(.:format) {:controller=>"domains", :action=>"show"}
PUT /customers/:customer_id/domains/:id(.:format) {:controller=>"domains", :action=>"update"}
DELETE /customers/:customer_id/domains/:id(.:format) {:controller=>"domains", :action=>"destroy"}
customers GET /customers(.:format) {:controller=>"customers", :action=>"index"}
POST /customers(.:format) {:controller=>"customers", :action=>"create"}
new_customer GET /customers/new(.:format) {:controller=>"customers", :action=>"new"}
edit_customer GET /customers/:id/edit(.:format) {:controller=>"customers", :action=>"edit"}
customer GET /customers/:id(.:format) {:controller=>"customers", :action=>"show"}
PUT /customers/:id(.:format) {:controller=>"customers", :action=>"update"}
DELETE /customers/:id(.:format) {:controller=>"customers", :action=>"destroy"}
root / {:controller=>"customers", :action=>"index"}
Cependant, tous les tests pour les Domaines de contrôleur sont des échecs dus à des erreurs de routage.
Par exemple le test suivant (généré par les Rails de ressources generator) échoue, comme le font tous les autres tests dans l' DomainsControllerTest
classe.
class DomainsControllerTest < ActionController::TestCase
test "should get index" do
get :index
assert_response :success
assert_not_nil assigns(:domains)
end
end
Il échoue avec l'erreur:
No route matches {:action => "index", :controller => "domains"}
C'est logique, puisque les routes par défaut n'existent plus et les Domaines contrôleur nécessite un @customer
à être mis. J'ai passé un après-midi à la recherche pour le besoin de changement, mais presque tous les site parle des tests Rspec au lieu d'un Rails de tests.
Comment puis-je modifier l' domains_controller_test.rb
de sorte qu'il sera de comprendre les imbriquée de ressources?