在我config.routes.rb
文件:如何設置rspec測試在Rails中使用默認語言環境?
scope '(:locale)' do
resources :techniques, path: '/applications' do
get '/complete_list' => 'techniques#complete_list'
end
end
在我Gemfile
:
group :development, :test do
gem 'rspec-rails'
gem 'byebug'
gem 'better_errors'
gem 'factory_girl_rails'
gem 'faker'
end
group :test do
gem 'poltergeist'
gem 'capybara'
gem 'launchy'
gem 'database_cleaner'
end
在我application_controller.rb
:
before_filter :set_locale
def set_locale
I18n.locale = params[:locale] || I18n.default_locale
end
def default_url_options(options = {})
{ locale: I18n.locale }.merge options
end
在我的規格:
visit techniques_path
它總是flunks:
I18n::InvalidLocale - "applications" is not a valid locale:
而且它強調此行中我application_controller:
I18n.locale = params[:locale] || I18n.default_locale
我可以做事情的工作,通過改變規格爲閱讀:
visit techniques_path(locale: :en)
但我認爲在應用程序控制器中設置default_url_options會自動處理。我在這裏錯過了什麼?