Rails 4 + ReactJS:“SyntaxError:隐式对象中不能有隐式值”

时间:2015-08-31 18:47:02

标签: ruby-on-rails ruby-on-rails-4 coffeescript reactjs

我正在关注Fernando Villalobos的 React.js - A guide for Rails developers AirPair教程。

这里的目标是使用Rails和React JS构建一个简单的费用跟踪应用程序。

Nesting Components: Listing Records部分,作者建议按如下方式创建app/views/records/index.html.erb文件:

<%# app/views/records/index.html.erb %>
<%= react_component 'Records', { data: @records } %>

javascripts/components/records.js.coffee文件如下:

# app/assets/javascripts/components/records.js.coffee

  @Records = React.createClass
    render: ->
      React.DOM.div
        className: 'records'
        React.DOM.h2
          className: 'title'
          'Records'

然后,当我们访问localhost:3000/records时,我们应该看到以下内容:

enter image description here

但是,当我访问localhost:3000/records时,我收到以下错误:

ExecJS::RuntimeError in Records#index
SyntaxError: [stdin]:7:10: cannot have an implicit value in an implicit object
<title>Expenses</title>
  <%= stylesheet_link_tag    'application', media: 'all', 'data-turbolinks-track' => true %>
  <%= javascript_include_tag 'application', 'data-turbolinks-track' => true %>
  <%= csrf_meta_tags %>
</head>
<body>

特别是,导致问题的一行似乎是:

<%= javascript_include_tag 'application', 'data-turbolinks-track' => true %>

知道问题是什么以及我如何使事情有效?

2 个答案:

答案 0 :(得分:6)

我的错误。

我正在使用Ruby&#34;两个空间&#34;我的CoffeeScript文件中的缩进,导致错误。

当我复制并粘贴教程中的代码时,如果有正确的缩进,一切都像魅力一样。

答案 1 :(得分:1)

尝试使用以下coffescript而不是当前的coffescript(只需从coffescript中删除React.DOM):

@Records = React.createClass
  render: ->
    div
      className: 'records'
      h2
        className: 'title'
        'Records'