【发布时间】:2013-06-30 00:46:51
【问题描述】:
对 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
如果我“rake routes”,我会得到以下结果
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 %>
我想我错过了一些东西,但不知道是什么。 任何帮助将不胜感激!
问候, 本杰明
【问题讨论】:
-
奇数。也许发布一些生成这些非 URL 的视图代码?
标签: ruby-on-rails ruby-on-rails-4 nested-routes rails-i18n