如何显示在rails上选择json数据

时间:2017-01-12 17:36:03

标签: ruby-on-rails ruby

嘿我试图用AJAX进行级联选择。

问题是JSON格式的响应没有出现在选择列表中

这些是我的控制者:

def fallas
     @falla = Tipos.select("tip_id, tip_titulo").where("tip_id_padre = ?", params[:item])

    respond_to do |format|
      format.html
      format.js
      format.json { render json: @falla}
    end

  end

我在那里进行AJAX调用的CoffeeScript:

jQuery ->

    $('#solicitudes_tip_id_item').change ->

        data = $('#solicitudes_tip_id_item :selected').val()

        $.ajax({
      type: "POST",
      url: "/solicitudes/fallas",
      dataType: 'json'
      data: item:data,
      success:(data) ->
        $('#solicitudes_tip_id_falla').append(data)
      error:(data) ->
        return false
    })

当我显示答案时,这些是js.erb文件(也许这是问题)

$("#solicitudes_tip_id_falla").empty()
 $("#solicitudes_tip_id_falla").append("<%= render :json(:partial => @falla) %>")

控制台告诉我这个:

[{"tip_id":14,"tip_titulo":"Monitor encendido pero sin imágen"}]

但是没有选择。

我如何显示json数据或如何进行级联选择?

编辑: 如果我使用函数JSON.parse我得到以下错误:

SyntaxError: JSON.parse: unexpected character at line 1 column 1 of the JSON data

现在,我删除了coffeescript,我用Jquery制作了它:

$("#solicitudes_tip_id_item").change(function(){

        var data = $("#solicitudes_tip_id_item :selected").val();

        $.ajax({
          url: "solicitudes/fallas", 
          data: {item : data}, 
          dataType:'json',
          type:'GET', 


          success: function(resp){
              /*$.each(resp, function(idx, obj) { 
                $('#prueba').append($("<option></option>"‌​).attr("value",obj.t‌​ip_id).text(obj.tip_‌​titulo)); 

              }); 
              */
              var lol= JSON.stringify(resp);
              console.log(lol);
              var lel = JSON.parse(lol)
              console.log(lel);

          } 

        });

在var lol和lel的控制台日志中,显示: Var lol:

[{"tip_id":14,"tip_titulo":"Monitor encendido pero sin imágen"}]

Var lel:

Array [ Object ]

只需将该信息转换为字符串即可解析为select

0 个答案:

没有答案