我认为这是一个基本问题,但我无法渲染之前呈现过的部分内容。这是我目前正在看的内容,我为这样一个基本问题道歉: 我的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 }) %>");
然后生成此部分:
<%= @result.inspect%>
<br>
<br>
<br>
<p> test </p>
应该在这里输出:
<div class='output'>
<p>Results:</p>
<%= render "ranks" %>
</div>
并且正如控制台所见: 呈现welcome / _ranks.html.erb(0.4ms) 呈现welcome / algorthim.js.erb(1.8ms)
但我得到了这个:
<div class='output'>
<p>Results:</p>
nil
<br>
<br>
<br>
<p> test </p>
</div>
我也尝试过format.js {@ result = @ result}和format.js {render(:partial =&gt;'ranking',:locals =&gt; {result:@result})}但没有运气。
我想知道是否有人可以帮助我!:)
谢谢你,我再次为新手问题道歉。
@data是:
[#<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是:“喜剧”
答案 0 :(得分:1)
如参数名称所示,
(".output").append("<%= j render(:partial=> 'ranks', :locals=> { result: @result }) %>")
会将 locals 传递给您的部分内容。而不是
<%= @result.inspect%>
你应该
<%= result.inspect%>
答案 1 :(得分:0)
答案显然是错误的。 on(“.output”)。append(“&lt;%= j render(:partial =&gt;'ranking',:locals =&gt; {result:@result})%&gt;”)我忘了$,这导致结果永远不会显示!唉,简单的错误。