繁体   English   中英

js.erb文件未呈现其内容

[英]js.erb file not rendering its contents

我想使用js.erb渲染Google图表。 我从python脚本发出POST请求,将一些参数发送到我的ruby on rails应用程序,该应用程序解析这些参数并使用它们显示我想要的图形,但不显示任何内容。

  params_list = []
        params.each_pair {|key, value|
          params_list.push([key,value])
        }
        p params_list

        @image = Gchart.pie_3d(:size => '500x300',
                  :title => "Top 5 Results",
                  :legend => ["#{params_list[0][0]} #{params_list[0][1]}%" , 'source-document2 [22%]','source-document3','source-document4','source-document5'],
                  :data => [22, 21, 20, 18, 19])

        render :template => "deploy/results.js.erb", :locals => {:image => @image }

results.js.erb

$("#chart").append("<p> <%= escape_javascript render(partial: 'home/chart', locals: { :image => @image }) %> </p> ");

但是即使在控制台中也没有显示任何内容

Rendered deploy/results.js.erb

Rails控制台输出

Started POST "/results.js" for 131.227.46.134 at 2016-05-14 03:18:13 +0100

Processing by DeployController#results as JS
  Parameters: {"results"=>"[('source-document01348.txt', 22), ('source-document01389.txt', 21), ('source-document01253.txt', 20),
 ('source-document01306.txt', 19), ('source-document01255.txt', 18)]"}
  Rendered home/_chart.html.erb (0.1ms)
  Rendered deploy/results.js.erb (1.7ms)
Completed 200 OK in 9ms (Views: 8.4ms | ActiveRecord: 0.0ms)

发布请求的python代码

def send_results(results):
    url = "http://e786a82b.ngrok.io/results.js"
    data = {
        "results": results
    }
    data = urllib.urlencode(data)
    req = urllib2.Request(url, data)

    # try:
    response = urllib2.urlopen(url, data)

注意:使用ngrok创建隧道,因为python不会发送到localhost

请尝试执行以下操作,而不是通过文件名显式引用您的部分内容:

render "deploy/results", :formats => [:js], :locals => {:image => @image }

Rails不知道您要通过文件名呈现什么,而是通过上下文和格式来实现。 指定:formats选项有助于Rails知道您的意图。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM