【问题标题】:how to access rendered json objects in rails如何在rails中访问渲染的json对象
【发布时间】:2012-01-02 10:08:03
【问题描述】:

我想在我的 java 脚本中以 json 格式访问以下数组 @names。 所以在我的控制器中我有这个代码:

def new 
    @release = Release.new
     @names=User.select(:name).where("name LIKE 'sr%'")
    respond_to do |format|
      format.html # new.html.erb
      format.xml  { render :xml => @release }
      format.json { render :json =>{ :data1 => @names} } 
    end
  end

请告诉我如何访问我的视图文件中的 data1 以及如何将值传递给 javascript 函数。

谢谢, 拉姆亚。

【问题讨论】:

    标签: javascript ruby-on-rails ruby-on-rails-3 json


    【解决方案1】:

    如果你使用 jQuery,你可以这样做:

    $.getJSON('users/new.json', function(data) {
      console.log(data); //you'll find your json here
    });
    

    你会的:

    $(document).ready(function() { 
      $(function(){ 
        $.getJSON('releases/new.json', function(data1) { 
          alert("inside getJson"); alert(data1); console.log(data1); 
        }); 
    });
    

    但你应该这样做:

    $(document).ready(function() { 
      $.getJSON('releases/new.json', function(data1) { 
        alert("inside getJson"); alert(data1); console.log(data1); 
      }); 
    });
    

    或者:

    $(document).ready(function() { 
      $(function(){ 
        $.getJSON('releases/new.json', function(data1) { 
          alert("inside getJson"); alert(data1); console.log(data1);
        }); 
      })(); 
    });
    

    【讨论】:

    • 您好,非常感谢您回答我。我已经把代码放在里面了。控件没有转到“getJSON 函数”$(document).ready(function() { $(function(){ $.getJSON('releases/new.json', function(data1) { alert("inside getJson"); alert(data1); console.log(data1); }); });
    • 您好,抱歉,我没有注意到 ruby​​ 文件中的错误。我收到一个错误:在 Mon Jan 02 17:08:13 +0530 2012 ActionController::RoutingError 开始 GET "/releases/releases/new.json" for 172.30.11.164 (No route matches "/releases/releases/new. json"): 那么我必须在路由文件中添加什么
    • 嗯,尝试将:$.getJSON('releases/new.json' 替换为 $.getJSON('/releases/new.json',只需添加一个 /
    • 非常感谢。那行得通。但是在尝试打印 data1 时,我得到的是 [object Object] 而不是任何值
    • 这是警告框中的预期行为,您应该检查您的 js 调试控制台。
    【解决方案2】:

    你输入http://domain/releases/1.json而不是http://domain/releases/1,你会得到解析为json的数据!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-12-12
      • 2014-07-10
      • 2011-03-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-20
      • 1970-01-01
      相关资源
      最近更新 更多