В моем файле маршрутов есть ресурс с областью действия:
scope :module => "physical" do
resources :mymodels
end
Используя '> rake маршруты', я получаю стандартные маршруты, в том числе:
mymodel GET /mymodels/:id(.:format) {:action=>"show", :controller=>"physical/mymodels"}
Однако, когда я используюконсоль (и это то, что не получается в моих тестах), чтобы получить URL для экземпляров Mymodel, я получаю ошибки:
> m = Physical::Mymodel.new
> => {...model_attributes...}
> m.save
> => true
> app.url_for(m)
> NoMethodError: undefined method `physical_mymodel_url' for #<ActionDispatch::Integration::Session:0x00000105b15228>
from /usr/local/lib/ruby/gems/1.9.1/gems/actionpack-3.0.7/lib/action_dispatch/testing/assertions/routing.rb:175:in `method_missing'
from /usr/local/lib/ruby/gems/1.9.1/gems/actionpack-3.0.7/lib/action_dispatch/routing/polymorphic_routes.rb:114:in `polymorphic_url'
from /usr/local/lib/ruby/gems/1.9.1/gems/actionpack-3.0.7/lib/action_dispatch/routing/url_for.rb:133:in `url_for'
from (irb):13
from /usr/local/lib/ruby/gems/1.9.1/gems/railties-3.0.7/lib/rails/commands/console.rb:44:in `start'
from /usr/local/lib/ruby/gems/1.9.1/gems/railties-3.0.7/lib/rails/commands/console.rb:8:in `start'
from /usr/local/lib/ruby/gems/1.9.1/gems/railties-3.0.7/lib/rails/commands.rb:23:in `<top (required)>'
from script/rails:6:in `require'
from script/rails:6:in `<main>'
Это может быть недочёт, но Mymodel также является подклассом, использующим стандартную единственную таблицу Railsнаследство.
Есть мысли?Почему он ищет phys_mymodel_url вместо mymodel_url?Какие-нибудь идеи для обходных путей, чтобы я мог все еще использовать нефиксированные маршруты?