我試圖用這個寶石來確定用戶的首選語言HTTP_ACCEPT_LANGUAGE寶石,並運行了一些麻煩。使用在軌道3
undefined local variable or method http_accept_language for #<HomeController:0x964f5ec>
我包含在Gemfile中的寶石,跑捆綁安裝,並多次重新啓動服務器。爲什麼我的應用不能識別寶石?
而且,在我的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)
我對作者的解釋有點困惑。
謝謝你的幫助。
UPDATE: 寶石,HTTP_ACCEPT_LANGUAGE,似乎並沒有被成功安裝。它位於gem列表中,但是當我嘗試卸載它時,錯誤消息顯示它未安裝。爲什麼會發生?
[email protected]:~/appe$ gem list
*** LOCAL GEMS ***
...
http_accept_language (1.0.2)
...
[email protected]:~/app$ sudo gem uninstall http_accept_language
INFO: gem "http_accept_language" is not installed
我無法弄清楚你正在使用的平臺,但我認爲你沒有問題安裝它,我想你「sudo的創業板」訪問不同的紅寶石。 – michelpm
還有一件事,你問兩兩件事,就可以使問題更具有可讀性,如果你只是刪除一切從「而且,」到「UPDATE」。我很肯定你可以弄清楚在主要問題解決後你想要問什麼。 – michelpm