Ruby on rails CoffeeScript在Rails 4上运行异常

Ruby on rails CoffeeScript在Rails 4上运行异常,ruby-on-rails,coffeescript,Ruby On Rails,Coffeescript,我无法让CoffeeScript使用Rails。这是我第一次使用CoffeeScript,我对Rails也相当陌生,所以我不知道如何使这个简单的CoffeeScript函数以正确的方式工作。下面是我在app/assets/javascript目录下的people.js.coffee文件 myFunction = -> alert "test" 警报“test”消息仅在我加载页面时显示(app/views/people.html.erb和_form.html.erb部分)当我单击表单中的以

我无法让CoffeeScript使用Rails。这是我第一次使用CoffeeScript,我对Rails也相当陌生,所以我不知道如何使这个简单的CoffeeScript函数以正确的方式工作。下面是我在app/assets/javascript目录下的people.js.coffee文件

myFunction = ->
alert "test"
警报“test”消息仅在我加载页面时显示(app/views/people.html.erb和_form.html.erb部分)当我单击表单中的以下按钮时,不是:

<%= submit_tag "Test CoffeeScript", :type => 'button', 
:id => 'coffeeScript', :onclick => 'myFunction()' %> 
我的Ruby版本是2.1.0 以下是我运行bundle show命令时的一些值:

  • 咖啡轨(4.0.1)
  • 咖啡脚本(2.2.0)
  • coffee脚本源代码(1.7.0)
  • jbuilder(1.5.3)
  • jquery rails(3.1.0)
  • 轨道(4.0.2)
  • 栏杆(4.0.2)
  • sass(3.2.19)
  • sass导轨(4.0.3)
  • 链轮(2.11.0)
  • 链轮轨道(2.0.1)
  • 涡轮链路(2.2.2)

我的JavaScript文件工作正常;我在JavaScript中尝试了类似类型的函数,结果还可以

这是因为函数在另一个作用域中。您也可以使用不引人注目的jquery来实现这一点

$ ->
  myFunction = ->
    alert("test")

  $("#coffeeScript").on "click", ->
    myFunction()
并从中删除onclick处理程序

<%= submit_tag "Test CoffeeScript", type: 'button', id: 'coffeeScript' %> 
我想推荐第一个,但那只是我的意见。另外,您必须非常小心CoffeeScript中的缩进,它的工作原理与Python非常相似,空格很重要


关于作用域和js/coffee的解释在这里

这是因为函数位于另一个作用域中。您也可以使用不引人注目的jquery来实现这一点

$ ->
  myFunction = ->
    alert("test")

  $("#coffeeScript").on "click", ->
    myFunction()
并从中删除onclick处理程序

<%= submit_tag "Test CoffeeScript", type: 'button', id: 'coffeeScript' %> 
我想推荐第一个,但那只是我的意见。另外,您必须非常小心CoffeeScript中的缩进,它的工作原理与Python非常相似,空格很重要


关于作用域和js/coffee的解释在这里

这是因为函数位于另一个作用域中。您也可以使用不引人注目的jquery来实现这一点

$ ->
  myFunction = ->
    alert("test")

  $("#coffeeScript").on "click", ->
    myFunction()
并从中删除onclick处理程序

<%= submit_tag "Test CoffeeScript", type: 'button', id: 'coffeeScript' %> 
我想推荐第一个,但那只是我的意见。另外,您必须非常小心CoffeeScript中的缩进,它的工作原理与Python非常相似,空格很重要


关于作用域和js/coffee的解释在这里

这是因为函数位于另一个作用域中。您也可以使用不引人注目的jquery来实现这一点

$ ->
  myFunction = ->
    alert("test")

  $("#coffeeScript").on "click", ->
    myFunction()
并从中删除onclick处理程序

<%= submit_tag "Test CoffeeScript", type: 'button', id: 'coffeeScript' %> 
我想推荐第一个,但那只是我的意见。另外,您必须非常小心CoffeeScript中的缩进,它的工作原理与Python非常相似,空格很重要

这里有关于scopes和js/coffee的解释