我知道这已经被问到了,但我仍然无法让它发挥作用。
我正在尝试使用:locale
来显示default_url_options
参数,如下所示:
# SomethingController < ApplicationController
def default_url_options(options={})
{ :locale => I18n.locale }
end
I18n.locale
设置为before_filter
并具有正确的值(使用pry调试)。
路线:
# In routes
scope "(:locale)", :defaults => { :locale => I18n.default_locale } do
get "something" => "something#index", :as => :something_index
end
在我看来,我试过了:
url_for :something_index
和
something_index_url
但他们都返回“/ something”而不是“/ en / something”。为了自动获取要显示的参数,我还需要做些什么吗?
我读到了这个here:
每个帮助方法都依赖于url_for(例如,命名的帮助程序 root_path或root_url等路由,books_path或者资源路由 books_url等)现在将自动包含在中的语言环境 查询字符串
答案 0 :(得分:0)
你可以修改get matcher:
scope :locale, :defaults => { :locale => I18n.default_locale } do
get "/:locale/something" => "something#index", :as => :something_index
end
有关更好的方法,请参阅: