1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.

Request via Ajax não retornando dados filtrados

Discussion in 'Technology' started by B. Dias, Oct 8, 2018.

  1. B. Dias

    B. Dias Guest

    Estou tentando retornar dados via Ajax para carregar um select de estados no Rails, de maneira que retorne apenas os estados que pertencem a determinado Pais, mas o retorno nunca chega no condicional, sempre para no parse do JSON que estou requisitando à API, alguem que possa me dar uma luz?

    Script jquery para carregar o select:

    $('#pais_id').on('change', function() {
    $.ajax({
    url:'/home/ajax_estados?id_pais=' + this.value,
    type:'GET',
    dataType:'json',
    success:function(estados){
    $("#estado_id").html("");
    $("#estado_id").append("<option value=''> Selecione </option>");
    $.each(estados.estados, function(index, estado) {
    $("#estado_id").append("<option value='"+estado.id+"'> "+estado.abreviacao+" </option>");
    });
    },
    error:function(data){
    $("#estado_id").html("");
    $("#estado_id").append("<option value=''> Selecione </option>");
    }
    });
    });


    Ação que é executada pelo Script:

    def ajax_estados
    estados = Uf.buscar(params[:id_pais])
    render json: {
    estados: estados
    }.to_json
    end


    Método buscar da classe Uf que carrega a variavel estados na ação acima:

    def self.buscar(id)
    uri = URI.parse(URI.escape("#{API}/ufs.json"))
    request = HTTParty.get(uri)
    if (200...300).include?(request.code.to_i)
    estados = JSON.parse(request.body);
    if estados.count > 0
    estados.each do |estado|
    return estado if estado["countrie_id"] == id
    end
    end
    end
    end


    O id de pais está sendo enviando corretamente, o retorno nunca passa do estados = JSON.parse(request.body); no método buscar.

    Login To add answer/comment
     

Share This Page