我正在尝试使用这个 gem 来确定用户的首选语言,并遇到了一些麻烦。
undefined local variable or method http_accept_language for #<HomeController:0x964f5ec>
我将 gem 包含在 Gemfile 中,运行 bundle install 并多次重新启动服务器。为什么我的应用无法识别 gem?
此外,在我的 ApplicationController 中,我编写了以下方法:
def set_i18n_locale
http_accept_language.user_preferred_languages
available = %w{en kr}
params[:locale] = http_accept_language.preferred_language_from(available)
if params[:locale]
I18n.locale = params[:locale]
end
end
我不明白的一件事是第二行,
http_accept_language.user_preferred_languages
从https://github.com/iain/http_accept_language,这应该返回一个排序数组。我以为我必须将数组存储到某个变量中并使用它,但作者只是抛出了这样的方法。这是如何运作的?我不能只做以下吗?
available = %w{en kr}
params[:locale] = http_accept_language.language_region_compatible_from(available)
我只是对作者的解释有点困惑。
谢谢您的帮助。
更新: gem,http_accept_language,似乎没有成功安装。它在 gem 列表中,但是当我尝试卸载它时,错误消息显示它没有安装。为什么会这样?
max@max-VirtualBox:~/appe$ gem list
*** LOCAL GEMS ***
...
http_accept_language (1.0.2)
...
max@max-VirtualBox:~/app$ sudo gem uninstall http_accept_language
INFO: gem "http_accept_language" is not installed