Rails:初始化方法定义后未定义$

时间:2017-07-20 09:33:53

标签: jquery ruby-on-rails internationalization initialization

我为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本身。

2 个答案:

答案 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>