Javascript AJAX不使用参数呈现局部-不显示的问题

Javascript AJAX不使用参数呈现局部-不显示的问题,javascript,jquery,ruby-on-rails,ajax,partial-views,Javascript,Jquery,Ruby On Rails,Ajax,Partial Views,我想这是一个基本的问题,但是我在绘制我以前绘制过的部分时遇到了困难。以下是我目前所看到的,对于这样一个基本的问题,我深表歉意: 我的Ajax请求: $.ajax({ url: "/result/"+choice1+"/"+choice2+"/"+choice3, type: "GET", dataType: "script", data: { choice1: choice1,

我想这是一个基本的问题,但是我在绘制我以前绘制过的部分时遇到了困难。以下是我目前所看到的,对于这样一个基本的问题,我深表歉意: 我的Ajax请求:

  $.ajax({
              url: "/result/"+choice1+"/"+choice2+"/"+choice3,
              type: "GET",
              dataType: "script",
              data: { choice1: choice1,
                      choice2: choice2,
                      choice3: choice3 }

            })
它在启动时工作:由WelcomeController#algorthim作为JS处理,参数正确。 然后它去那条路线

 respond_to do |format|
    @result=result(@data,d, a)
    format.js {} 
end
转到algorthim.js.erb 这个文件是哪一个

(".output").append("<%= j render(:partial=> 'ranks', :locals=> { result: @result }) %>");
(“.output”).append(“'ranks',:locals=>{result:@result})%>”;
然后生成这个部分:

<%= @result.inspect%>
<br>
<br>
<br>
<p> test </p>




试验

应在此处输出的内容:

<div class='output'>
                <p>Results:</p>
                <%= render "ranks" %>
            </div>

结果:

如控制台所示: 呈现欢迎/_ranks.html.erb(0.4ms) 呈现欢迎/algorthim.js.erb(1.8ms)

但我的结果是:

<div class='output'>
                <p>Results:</p>
                nil
<br>
<br>
<br>
<p> test </p>
            </div>

结果:




试验

我也尝试过格式化.js{@result=@result}和格式化.js{render(:partial=>'ranks',:locals=>{result:@result}}),但没有成功

我想知道是否有人能帮我!:)

谢谢你,我再次为这个新手问题道歉

@数据如下:

[#<Event id: 2563, name: "Go from Introvert to Extrovert by Socializing with ...", price: "Free", location: "1 Dundas St E", category: "Comedy/Hang Out", feeling: "None", time: "07:00 PM", created_at: "2013-12-07 04:12:26", updated_at: "2013-12-07 04:12:26", latitude: 43.3124212, longitude: -79.91762829999999>, #<Event id: 2690, name: "Yuk Yuk's", price: "Price not listed", location: "224 Richmond Street West, Toronto, ON, Canada", category: "Comedy", feeling: "None", time: "Time not listed", created_at: "2013-12-07 04:12:56", updated_at: "2013-12-07 04:17:34", latitude: 43.6498097, longitude: -79.3883142>]
[#,#]
d是:[“43.6426,79.3871”]
a是“喜剧”

,如参数名称所示

(".output").append("<%= j render(:partial=> 'ranks', :locals=> { result: @result }) %>")
(“.output”).append(“'ranks',:locals=>{result:@result})%>”)
将本地人传递给您的部分用户。所以不是

<%= @result.inspect%>

你应该

<%= result.inspect%>


答案显然是打字错误。在(“.output”).append(“'ranks',:locals=>{result:@result})%>”)上,我忘记了$,这导致结果永远不会显示!。唉,这是个简单的错误。

你能不能也发布一下
@data
d
a
是什么,以及
result
方法的定义?result确实返回了一个值,我已经用调试器检查过了。我在上面发布了d和a以及@data。当我使用调试器检查时,结果确实会被激发,并根据输入进行更改。如果结果未返回值,则
@Result
将为零。您需要从
result()
返回一个值,这样
@result
就不会为零。result会返回一个值。例如,它返回:[{“Friday Night Live@ROM”=>94.16402889814924},{“Jazz周三”=>88.43687123067886},{“Classic Rock Fridays”=>85.9846283676537}]。问题不在于结果为零,因为它从来都不是零。“其他地方有问题。@vinodadhikary有什么建议吗?我正要写同样的东西-你传递的是局部变量,而不是全局变量