J'utilise des rails 3.0.5, RSPEC2 avec la dernière Capybara.
Configuration des itinéraires comme: p> dans application_controller J'ai ceci: p> xxx pré> donc dans mes vues, je peux utiliser p> sans aucun problème. p> mais quand je fais la même chose dans La visite de Capybara tente d'utiliser le 1 pour la locale et non pour l'ID. Cela ne fonctionne que lorsque j'utilise P> ou p> visit dossier_path(:id => 1)
4 Réponses :
en face comme indiqué ici sous donc pour vous, il doit em> être p> visit dossier_path(:id => "1")
Désolé, je ne vois pas comment cela est lié à ma question concernant les options d'URL par défaut non utilisées?
Malheureusement, la génération d'itinéraire se produit en dehors du contrôleur d'applications. Et Capybara ne fait pas de magie pour fournir des options d'URL par défaut à partir de celui-ci aux aides d'acheminement.
Mais vous pouvez spécifier les paramètres régionaux par défaut dans vos routres.rb p> et maintenant Si vous ne passez pas: option locale à une aide de route Il sera par défaut à "es" code>. En fait, il n'est pas nécessaire de garder
deffaulau_url_options code> plus dans votre contrôleur. P> p>
Que diriez-vous des valeurs par défaut qui dépendent de l'exemple actuel_utilisateur?
C'est une mauvaise réponse, même je l'ai avancé au début. Il fait passer vos tests, mais la moitié du lien dans l'application elle-même est bloquée avec des paramètres régionaux par défaut.
J'ai rencontré un problème similaire. Vous pouvez définir le défaut_url_options dans un bloc avant que celui-ci dans la demande Spécifications:
before :each do app.default_url_options = { :locale => :es } end
Juste pour mettre un peu plus de contexte pour cela: le code ci-dessus doit être quelque part dans le rspec.configure do | config | code> bloc.
Je couronne des rails 3.2.6 Et j'utilise une technique que j'ai trouvée ici https : //github.com/rspec/rspec-Rails/issues/255 sous le commentaire de Phoet. Il suffit de mettre cela quelque part dans / SPEC / Support et il devrait couvrir toutes vos spécifications
class ActionView::TestCase::TestController def default_url_options(options={}) { :locale => I18n.default_locale } end end class ActionDispatch::Routing::RouteSet def default_url_options(options={}) { :locale => I18n.default_locale } end end
Le titre de votre question indique qu'il s'agit d'une réponse plutôt que d'une question. Après avoir lu le contenu, cette impression n'a pas beaucoup changé. Que cherchez-vous exactement?
Je cherche une réponse pourquoi j'ai besoin d'utiliser le hachoir sale que j'ai montré et ce que je peux faire, de sorte que je puisse utiliser la méthode comme dans les vues (donc sans le hachoir sale d'avoir à ajouter nul ou explicitement passer: ID => ...).
Désolé, je viens de voir le titre était faux. Au lieu de "maintenant", cela aurait dû être "non", je viens de le corriger;)
Il semble que Capybara ne passe pas via votre contrôleur d'application, c'est pourquoi il ne peut pas passer correctement vos chemins. Ce que vous pouvez faire est de faire une aide d'étape pour réparer vos itinéraires pour Capybara
Pourriez-vous s'il vous plaît me donner un exemple? Il ne devrait pas seulement fonctionner pour dossier_path, mais n'importe quelle méthode de chemin. Si vous l'ajoutez comme une réponse, je peux voter pour cela :)