相关疑难解决方法(0)

Ruby on Rails - 将JavaScript变量从控制器发送到外部Javascript资产文件

我正在Ruby on Rails中创建一个网站.我有一个控制器动作,呈现如下视图:

def show
  time_left = Time.now.to_i - 3.hours.to_i
  @character = current_user.characters.find(params[:id])
  respond_to do |format|
    format.html # show.html.erb
    format.xml  { render :xml => @character }
  end
end
Run Code Online (Sandbox Code Playgroud)

这很好,因为它像我喜欢的那样呈现show.html.erb.然而,我想以某种方式将time_left作为Javascript变量传递给视图,因为这个值被倒计时JQuery插件使用.

我可以在HTML页面上放置一个javascript块并打印出一个实例变量,如下所示:

<script type="javascript"> $('#countdown').countdown('<%= @time_left =>')</script>
Run Code Online (Sandbox Code Playgroud)

但我想将所有的JS保存在一个外部文件中,在页面外可以有人就如何实现这一点给出一些建议吗?

javascript ruby-on-rails

11
推荐指数
2
解决办法
5196
查看次数

在javascript中嵌入erb代码以用于资产管道

在我的rails 3.1.3应用程序中,我想在我的javascript文件中插入一些ERB代码但是由于某种原因它没有被解析:

# app/assets/javascripts/application.js
//= require_tree ./shared

# app/assets/javascripts/shared/shared.js.erb
MM.loading = '<img src="<%= asset_path("icons/ajax-loader.gif") >">';
Run Code Online (Sandbox Code Playgroud)

获取如下所示/application.js:

MM.loading = '<img src=" asset_path("icons/ajax-loader.gif") >">';
Run Code Online (Sandbox Code Playgroud)

我在导轨指南中看不到任何额外的步骤 - 有什么我想念的吗?顺便说一下,我正在使用haml作为视图文件,并且还尝试了上面的内容.js.haml,包含在中#{...}.

javascript erb ruby-on-rails-3.1 asset-pipeline

7
推荐指数
1
解决办法
1万
查看次数