我正在关注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
时,我们应该看到以下内容:
但是,当我访问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 %>
知道问题是什么以及我如何使事情有效?
答案 0 :(得分:6)
我的错误。
我正在使用Ruby&#34;两个空间&#34;我的CoffeeScript文件中的缩进,导致错误。
当我复制并粘贴教程中的代码时,如果有正确的缩进,一切都像魅力一样。
答案 1 :(得分:1)
尝试使用以下coffescript而不是当前的coffescript(只需从coffescript中删除React.DOM
):
@Records = React.createClass
render: ->
div
className: 'records'
h2
className: 'title'
'Records'