Rails升级到3.2路由/语言环境失败

时间:2013-04-08 08:09:02

标签: devise ruby-on-rails-3.2 locale rails-i18n

我最近将一个项目从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

1 个答案:

答案 0 :(得分:0)

尝试将:locale放在:constraints hash:

scope "(:locale)", :constraints => {:locale => /#{I18n.available_locales.join("|")}/}

我认为这也有助于解决更多问题:http://guides.rubyonrails.org/routing.html