使用Rails反应JS – 使用URL访问JSON数据

我正在学习如何在我的Rails应用程序中使用React JS。 免责声明:这是我第一次搞乱JS!

我跟随Michael Chan在Rails Conf的演讲。 一切都运行得很漂亮,直到我点击CommentsContainer部分,在那里他从Rails路线获取评论数据。 我试图做同样的事情,除了在一个简单的歌曲控制器(用脚手架生成,名称和艺术家作为属性)。

我陷入了他用路径获取此数据的部分,当我尝试运行代码时,我最终得到了一个500错误页面。 我不知道如何调试我的React代码,因为浏览器控制台只显示500错误。

这是我的看法,

 

这是我的React代码,

 var SongsContainer = React.createClass({ componentWillMount(){ this.fetchSongs(); setInterval(this.fetchSongs, 1000); }, fetchSongs() { $.getJSON( this.props.songsPath, (data) => this.setState({songs: data}); ); }, getInitialState() { return { songs: [] }; }, render() { return ; } }); 

任何帮助将不胜感激! 我只是看着这500页不知道该怎么做。

编辑:添加服务器日志

 Started GET "/" for ::1 at 2015-08-11 18:19:30 +0530 Processing by SongsController#index as HTML Rendered songs/index.html.erb within layouts/application (0.6ms) Completed 500 Internal Server Error in 373ms (ActiveRecord: 0.0ms) ActionView::Template::Error (SyntaxError: unknown: Unexpected token (10:41)): 3:  4: Albums 5:  true %> 6:  true %> 7:  8:  9:  app/views/layouts/application.html.erb:6:in `_app_views_layouts_application_html_erb___3071413699732960348_70238909518380' 

经过多次努力,我找到了解决方案!

  1. 从application.html中删除Turbolinks。
  2. 用这个替换$ .getJSON函数,

    $ .ajax({url:this.props.songsPath,dataType:’json’,success:function(data){this.setState({songs:data});} .bind(this)});

现在,我真的不太了解JS,所以我不知道为什么会这样,但它确实如此! 干杯。