I'm trying to use polymorphic_path
in a functional test in Rails 3.
At first I would get
NoMethodError: undefined method `polymorphic_path' for #<ArticlesControllerTest:0x492f17c>
And then I added
include Rails.application.routes.url_helpers
The undefined method error
stopped, but now regular paths, like article_path(article)
for example stopped working:
NameError: undefined local variable or method `default_url_options' for #<ArticlesControllerTest:0x33ccbe0>
.rvm/gems/ruby-1.9.2-p290/gems/actionpack-3.0.9/lib/action_dispatch/testing/assertions/routing.rb:175:in `method_missing'
.rvm/gems/ruby-1.9.2-p290/gems/actionpack-3.0.9/lib/action_dispatch/routing/url_for.rb:102:in `url_options'
.rvm/gems/ruby-1.9.2-p290/gems/actionpack-3.0.9/lib/action_dispatch/routing/url_for.rb:131:in `url_for'
.rvm/gems/ruby-1.9.2-p290/gems/actionpack-3.0.9/lib/action_dispatch/routing/route_set.rb:195:in `article_path'
I used to be able to use polymorphic_path normally in Rails 2 by including
include ActionController::UrlWriter
How can I get this to work in Rails 3?
I need to include:
include ActionDispatch::Routing::UrlFor
include Rails.application.routes.url_helpers
and set:
default_url_options[:host] = 'www.example.com'
I found out via this post that answers a similar issue http://steve.dynedge.co.uk/2010/04/29/rails-3-rake-and-url_for/