从Rails 3中的视图调用javascript函数

kbj*_*ing 5 javascript ruby-on-rails

我是Rails的新手,从视图中调用javascript函数我有一个非常简单的问题.在Rails 2中,我会...

= javascript_tag "name(arguments)"
Run Code Online (Sandbox Code Playgroud)

其中javascript函数"name"位于我的application.js文件中.但是,这似乎不适用于Rails 3?或者我错过了什么?我一直在搜索谷歌一段时间没有找到答案.

更新:

好的,所以我按照建议查看了两种不同方式的来源(使用javascript_tag和haml javascript过滤器).这很奇怪,因为html源似乎是相同的?除了声明脚本类型的双引号和单引号之外.

首先:使用不起作用的javascript_tag

= javascript_tag "number_interval(#{fact.current_value}, #{fact.growth_per_second}, #{fact.decimal_number}, '#{dom_id(fact, "number")}'"
Run Code Online (Sandbox Code Playgroud)

资源...

<div id='number_number_interval_727'>loading</div>
<script type="text/javascript">
//<![CDATA[
number_interval(6952596670.36814, 2.33002440293917, 0, 'number_number_interval_727'
//]]>
</script>
Run Code Online (Sandbox Code Playgroud)

第二:使用haml javascript过滤器,它的工作原理

:javascript
  number_interval(#{fact.current_value}, #{fact.growth_per_second}, #{fact.decimal_number}, '#{dom_id(fact, "number")}')
Run Code Online (Sandbox Code Playgroud)

资源...

<div id='number_number_interval_727'>loading</div>
<script type='text/javascript'>
//<![CDATA[
number_interval(6952596917.02179, 2.33002440293917, 0, 'number_number_interval_727')
//]]>
</script>
Run Code Online (Sandbox Code Playgroud)

好吧,我想我会坚持使用haml过滤器!

D.S*_*ley 2

你有一个语法错误:

= javascript_tag "number_interval(#{fact.current_value}, #{fact.growth_per_second}, #{fact.decimal_number}, '#{dom_id(fact, "number")}'"
Run Code Online (Sandbox Code Playgroud)

缺少函数的右括号number_interval。我认为应该是:

= javascript_tag "number_interval(#{fact.current_value}, #{fact.growth_per_second}, #{fact.decimal_number}, '#{dom_id(fact, "number")}')"
Run Code Online (Sandbox Code Playgroud)