我已根据Rails Guide
设置了本地化路线#routes.rb
scope "(:locale)", locale: /#{I18n.available_locales.join("|")}/ do
#my resources
end
#application_controller.rb
before_action :set_locale
def set_locale
I18n.locale = params[:locale] || I18n.default_locale
end
def default_url_options
{ locale: I18n.locale }
end
但是在运行路由规范时,没有设置默认语言环境,导致错误,例如
Failure/Error: it { expect(edit_user_path(1)).to eq("/users/1/edit") }
ActionController::UrlGenerationError:
No route matches {:action=>"edit", :controller=>"users", :id=>nil, :locale=>1} missing required keys: [:id]
经过大量谷歌搜索,我发现测试本地化路线的最佳实践很少。任何人都能指出我的好文章吗?
具体来说,我想知道:
例如,
['en','fr'].each do |locale|
expect(edit_user_path(1, locale: locale)).to eq("/#{locale}/users/1/edit")
end