对 Ruby 和 Rails 来说很新,所以这可能是一个愚蠢的问题;)
我尝试让“i18n”路由与“admin”命名空间一起使用。
所以,我的路线文件看起来像
scope '/:locale' do
root 'admin#index', as: :root
namespace :admin do
resources :foos
end
end
在我的 ApplicationController 中,我有
before_action :set_locale
def set_locale
I18n.locale = params[:locale] || I18n.default_locale
end
def default_url_options(options={})
{ locale: I18n.locale }
end
如果我“耙路线”,我得到以下
root GET / admin#index
GET /:locale(.:format) admin#index
admin_foos GET /:locale/admin/foos(.:format) admin/foos#index
我可以到达 /en/admin/foos
我面临的问题是,如果我在视图中打印路径,(甚至是我表单中的路径,...)我将获得路径 /admin/foo?locale=en。这个网址以 404 结尾。
对路径的调用很简单,例如
<%= link_to 'Back', admin_foos_path %>
我想我错过了一些东西,但不知道是什么。任何帮助将不胜感激 !
问候, 本杰明