I18n 路由错误
I18n routing error
我正在通过 I18n 在我的应用程序中实现内部化。
我更改了路由:
root 'sessions#new'
get '/signup', to: 'users#new'
post '/signup', to: 'users#create'
get '/login', to: 'sessions#new'
post '/login', to: 'sessions#create'
delete '/logout', to: 'sessions#destroy'
resources :users, only: [:new, :show, :create, :index]
收件人:
scope "(:locale)", locale: /pl|en/ do
root 'sessions#new'
get '/signup', to: 'users#new'
post '/signup', to: 'users#create'
get '/login', to: 'sessions#new'
post '/login', to: 'sessions#create'
delete '/logout', to: 'sessions#destroy'
resources :users, only: [:new, :show, :create, :index]
end
将显示从 www.example.com/users?locale=pl 更改为 www.example.com/pl/users
测试中
test "should redirect show user when not logged in" do
get user_path(@user)
assert_not flash.empty?
assert_redirected_to root_url
end
我遇到了一个问题。
Error:
UsersControllerTest#test_should_redirect_show_user_when_not_logged_in:
>
> ActionController::UrlGenerationError: No route matches {:action=>"show", :controller=>"users", :locale=>#<User id: 753762654,
> first_name: "Jan", last_name: "Kowalski", password: "test12",
> student_id: "123456", created_at: "2016-12-16 21:02:17", updated_at:
> "2016-12-16 21:02:17", cookies_digest: nil, admin: true>} missing
> required keys: [:id]
> test/controllers/users_controller_test.rb:16:in `block<class:UsersControllerTest>'
如何在保持 url 的同时解决该问题:示例。com/pl/users ?
在测试
中调用user_path
时,你应该传递你想要的locale
像这样user_path(@user, locale: :pl)
我正在通过 I18n 在我的应用程序中实现内部化。
我更改了路由:
root 'sessions#new'
get '/signup', to: 'users#new'
post '/signup', to: 'users#create'
get '/login', to: 'sessions#new'
post '/login', to: 'sessions#create'
delete '/logout', to: 'sessions#destroy'
resources :users, only: [:new, :show, :create, :index]
收件人:
scope "(:locale)", locale: /pl|en/ do
root 'sessions#new'
get '/signup', to: 'users#new'
post '/signup', to: 'users#create'
get '/login', to: 'sessions#new'
post '/login', to: 'sessions#create'
delete '/logout', to: 'sessions#destroy'
resources :users, only: [:new, :show, :create, :index]
end
将显示从 www.example.com/users?locale=pl 更改为 www.example.com/pl/users
测试中
test "should redirect show user when not logged in" do
get user_path(@user)
assert_not flash.empty?
assert_redirected_to root_url
end
我遇到了一个问题。
Error:
UsersControllerTest#test_should_redirect_show_user_when_not_logged_in:
>
> ActionController::UrlGenerationError: No route matches {:action=>"show", :controller=>"users", :locale=>#<User id: 753762654,
> first_name: "Jan", last_name: "Kowalski", password: "test12",
> student_id: "123456", created_at: "2016-12-16 21:02:17", updated_at:
> "2016-12-16 21:02:17", cookies_digest: nil, admin: true>} missing
> required keys: [:id]
> test/controllers/users_controller_test.rb:16:in `block<class:UsersControllerTest>'
如何在保持 url 的同时解决该问题:示例。com/pl/users ?
在测试
中调用user_path
时,你应该传递你想要的locale
像这样user_path(@user, locale: :pl)