У меня есть этот тест:
require 'spec_helper'
describe "LayoutLinks" do
I18n.available_locales.each do |locale|
I18n.locale = locale
.
.
describe "when signed in" do
before(:each) do
@user = Factory(:user)
visit signin_path
fill_in :email, :with => @user.email
fill_in :password, :with => @user.password
click_button
visit root_path
end
.
.
.
it "should have a profile link" do
response.should have_selector('a', :href => "/#{I18n.locale}#{user_path(@user)}", :content => I18n.t(:link_profile))
end
end
end
end
Я работаю с выбором языка в URL.Как / en / ... или /de/...
Этот тест получает эту ошибку Сообщение:
No route matches {:action=>"show", :controller=>"users", :locale=>#<the complete User Hash>
Я предполагаю из сообщения об ошибке, что полный пользовательский хэш введен вчасть локали URL, как это делается или как я могу предотвратить это?
€ Изменить Я нашел решение:
Мне пришлось передать переменную локали в user_path(@user)
втаким образом:
response.should have_selector('a', :href => user_path(I18n.locale, @user), :content => I1