Javascript .js.erb中的命名错误

Javascript .js.erb中的命名错误,javascript,ruby,ruby-on-rails-3.1,Javascript,Ruby,Ruby On Rails 3.1,我正在尝试编写不引人注目的javascript,我认为: <%= javascript_include_tag "trend" %> 在我的trend.js.erb中有: $(document).ready(function() { <% @testsss.each do |t|%> $('#<%= "t-"+t.id.to_s %>').click(function(event){ //alert("

我正在尝试编写不引人注目的javascript,我认为:

<%= javascript_include_tag "trend" %>

在我的trend.js.erb中有:

$(document).ready(function() {

    <% @testsss.each do |t|%>

        $('#<%= "t-"+t.id.to_s %>').click(function(event){
            //alert("sometext");
            $.ajax({type: "GET", url: "/returngraph?test=<%= t.id.to_s %>", dataType: "html",success: 
            function(data){ $("#chart").html(data)} });

        }); 

    <% end %>


});
$(文档).ready(函数(){
$('#')。单击(函数(事件){
//警报(“sometext”);
$.ajax({type:“GET”,url:“/returngraph?test=”,数据类型:“html”,成功:
函数(数据){$(“#图表”).html(数据)});
}); 
});
但是我得到了一个名字。。。 我做错了什么@testsss是一组对象,并且@testsss.each在trend.html.erb中工作,我在这里称javascript_include_标记为“trend”

多谢各位

编辑:

以下是实际错误:

NoMethodError in Statisticall#trend

Showing /xxxx/app/views/statisticall/trend.html.erb where line #1 raised:

undefined method `each' for nil:NilClass
  (in /xxxx/app/assets/javascripts/trend.js.erb)
Extracted source (around line #1):

1: <%= javascript_include_tag "trend" %>
2: <div id="hhead">
统计趋势中的命名错误 显示/xxxx/app/views/statisticall/trend.html.erb,其中第1行出现: nil:NilClass的未定义方法“each” (在/xxxx/app/assets/javascripts/trend.js.erb中) 提取的源(第1行附近): 1: 2:
我有控制器统计和动作趋势

我猜@testsss是在控制器中定义的

操作控制器未编译或接触资产管道,因此。。。不能在管道中的控制器中指定实例变量

解决方法包括@testsss.to_json,并将其作为JS变量包含在视图中

差不多

#app/views/some/view.html.erb
<script type='text/javascript'>
 window.testsss = <%= @testsss.tojson %>
</script>
或者,您可以在视图中而不是在资源管道中呈现该js

#app/views/some/view.html.erb
<script type='text/javascript'>
  $(document).ready(function() {
    <% @testsss.each do |t|%>
      $('#<%= "t-"+t.id.to_s %>').click(function(event){
        $.ajax({
          type: "GET",
          url: "/returngraph?test=<%= t.id.to_s %>",
          dataType: "html",
          success: function(data){ $("#chart").html(data)}
        });
      }); 
    <% end %>
  });
</script>
#app/views/some/view.html.erb
$(文档).ready(函数(){
$('#')。单击(函数(事件){
$.ajax({
键入:“获取”,
url:“/returngraph?test=”,
数据类型:“html”,
成功:函数(数据){$(“#图表”).html(数据)}
});
}); 
});
这样做的好处是在js中的action controller中分配了实例变量,但缺点是加载主页的时间较长


我喜欢第一种方法,但这取决于你吗?

你能添加实际的错误吗(它会告诉你它试图调用哪个方法)?我解决了这个问题,我将所有的方法从.js.erb移到.html.erb,然后添加进去,就像这样它就可以工作了…但这不是ruby的方式。。。
#app/views/some/view.html.erb
<script type='text/javascript'>
  $(document).ready(function() {
    <% @testsss.each do |t|%>
      $('#<%= "t-"+t.id.to_s %>').click(function(event){
        $.ajax({
          type: "GET",
          url: "/returngraph?test=<%= t.id.to_s %>",
          dataType: "html",
          success: function(data){ $("#chart").html(data)}
        });
      }); 
    <% end %>
  });
</script>