json 生成的 rails 无法被反应识别

json generated by rails can't be recognized by react

我有一个像这样的反应组件

var Task = React.createClass({
  render: function () {
    return (
      <div className="task" id={ this.props.task.uid }>
        <div className="header">
          <span>task #{ this.props.task.uid }</span>
        </div>
      </div>
      )
  }
});

创建任务后,我将此任务添加到 create.js.erb

内的任务列表中
<% if @task.errors.any? %>
  $("#error-alert").removeClass('hidden')
<% else %>
  $('#task-modal').modal('hide')
  $('#tasks-list').prepend(React.renderToString(Task({ task: '<%= @task.to_react %>' })))
<% end %>

原来在任务组件前置的时候,他前置的是空的(只是一个框,没有任何文字)。
我尝试了 <%= @task.to_react.to_json.html_safe %> 但也没有成功

我的Task#to_react方法:

def to_react
   {
     role: role,
     need: need,
     result: result,
     uid: uid
   }

结束

对 rails 不是很熟悉,但除非它在这里做一些魔术,否则您将对象嵌入到字符串中。

尝试

任务:<%= ... %>

而不是:

任务:'<%= ... %>'