我最近将一个项目从3.1升级到Rails 3.2并且一直试图弄清楚为什么路由不能很好地与设计一起玩。
NoMethodError - undefined method `locale' for #<ActionDispatch::Request:xxxxx>:
这是在新的(1)Journey路由引擎上。现在的问题是Devise只有其他模块没有错误。我可以说这个问题在于我对范围的使用。如果我准备好了范围,它就可以工作。
scope "(:locale)", :locale => /#{I18n.available_locales.join("|")}/ do
devise_for :users, :controllers => { :registrations => "users/registrations" }
...
end
(1)第7行(133)。请参阅跟踪和Journey line error in context here.
感谢任何建议和指导。谢谢。
Rails 3.2,Ruby 1.9.3
答案 0 :(得分:0)
尝试将:locale放在:constraints hash:
中scope "(:locale)", :constraints => {:locale => /#{I18n.available_locales.join("|")}/}
我认为这也有助于解决更多问题:http://guides.rubyonrails.org/routing.html