我为ApplicationController
定义了def initialize
I18n.available_locales = [:pl,:en]
I18n.locale = :pl
end
方法来设置本地化。它看起来像是:
initialize
不幸的是,它会导致浏览器出错:
未捕获的ReferenceError:$未定义
CSS也存在问题。我应该如何将自己挂钩到初始化过程以避免这些奇怪的问题?
//修改
当我删除def my_func():
shared_variable = calculate_thing()
def do_first_thing():
... = shared_variable
do_first_thing()
def do_second_thing():
foo(shared_variable)
...
do_second_thing()
方法声明时,页面正常工作(使用工作JQuery),因此问题不在于JQuery本身。
答案 0 :(得分:2)
不要在控制器中定义任何初始值设定项。设置请求上下文的正确方法是通过before_action
回调。
class ApplicationController
before_action :set_default_locale
private
def set_default_locale
I18n.available_locales = [:pl,:en]
I18n.locale = :pl
# or whatever it is you need to do
end
end
答案 1 :(得分:0)
要解决jQuery的问题,请尝试将jQuery脚本标记放在HTML头的末尾。例如:
<head>
...
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
</head>