このgemを使用してユーザーの優先言語を判別しようとしていますが、問題が発生しています。
undefined local variable or method http_accept_language for #<HomeController:0x964f5ec>
gemをGemfileに含め、bundle installを実行し、サーバーを複数回再起動しました。アプリが宝石を認識しないのはなぜですか?
また、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
私が理解していないことの1つは、2行目です。
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