0

次のコードにコメントすると

   <script type="text/javascript">

     // var data1= "<%=[@properties.map {|c| {time:c.time.strftime("%H").to_i , speed:c.speed}}].to_json%>"


    //var data=JSON.parse(data1.replace(/&quot;/g,'"'));

    //alert("dataset-------------------"+data);
</script>

次のエラーが表示されています。コードにコメントを付けた後にこのエラーが発生する理由。コメントを削除しているときに、次のエラーも発生しています。

 ActionView::Template::Error (undefined method `map' for nil:NilClass):
        48: <div id="bar-demo" align="center">
        49: <script type="text/javascript">
        50: 
        51:  // var data1= "<%=[@properties.map {|c| {time:c.time.strftime("%H").to_i , speed:c.speed}}].to_json%>"
        52: 
        53: 
        54: //var data=JSON.parse(data1.replace(/&quot;/g,'"'));
      app/views/static_pages/show.html.erb:51:in `_app_views_static_pages_show_html_erb__413296487_31443192

'

4

1 に答える 1

1

ActionViewが埋め込まれた Ruby を評価しようとすると、エラーが発生します。この段階で発生する可能性のあるエラーとは関係ありません<%= ... %><% ... %>特に、と//は何の関係もありません。これらのコメントは、埋め込まれた Ruby が によって正常に評価されActionView、生成された HTML ドキュメントがコントローラによってクライアントのブラウザに送信され、HTML がレンダリングされ、JavaScript がブラウザによって実行された場合にのみ効果があります。つまり、data1変数の設定をスキップします。

あなたの問題は、テンプレートがレンダリングされている時点で、インスタンス変数@propertiesnil. アクションStaticPagesController付きのようなものはありますか?showそのアクションでは、@propertiesどこに設定しますか?

于 2013-03-22T04:22:39.173 に答える