Rails基于webservice进行填充

时间:2015-05-09 17:39:28

标签: jquery ruby-on-rails forms web-services

我是RAILS开发的新手,并且很难让这个表单起作用。

我正在尝试建立一个也会询问用户地址的注册页面。

我想做的是,在用户输入其邮政编码后,该页面将根据输入的邮政编码在网络服务上发出请求,并填写其他地址信息,如街道,城市,州,让生活更轻松让用户继续填写其他表单字段。

我已经有了webservice工作,现在我需要的是在用户通知zipcode而不离开页面后填写表单 - 用户完成填写表单与其他信息的重要性。

这是表格的一个例子:

<table class="table table-bordered table-striped">
<tr>
    <td class="cep-index">
        <%= form_tag controller: "ceps", action: "search", id: "cepform", remote: true do %>
        <%= label_tag(:cep, "Informe o CEP:") %>
        <%= text_field_tag(:cep, "91760040") %>
        <%= submit_tag("Localizar", class: "btn") %>
        <% end %>
    </td>
</tr>
</table>
<table class="table table-bordered table-striped">
<tr>
    <td>Bairro:</td>
    <td><%= text_field_tag(:end_bairro, @endereco.bairro) %></td>
</tr>
<tr>
    <td>Cidade:</td>
    <td><%= text_field_tag(:end_cidade, @endereco.cidade) %></td>
</tr>
<tr>
    <td>UF:</td>
    <td><%= text_field_tag(:end_uf, @endereco.uf) %></td>
</tr>
<tr>
    <td>Endereço:</td>
    <td><%= text_field_tag(:end_endereco, @endereco.rua) %></td>
</tr>

这是控制器:

class CepsController < ApplicationController
  def search
  require 'correios-frete'
  require 'correios-cep'

  frete = Correios::Frete::Calculador.new :cep_origem => "23970-000",
                                        :cep_destino => params[:cep],
                                        :peso => 0.3,
                                        :comprimento => 30,
                                        :largura => 15,
                                        :altura => 2
   servicos = frete.calcular :sedex, :pac

  @pac = servicos[:pac].valor
  @sedex = servicos[:sedex].valor

  address = Correios::CEP::AddressFinder.get params[:cep]

  @endereco = Cep.new

  @endereco.rua = address[:address]
  @endereco.uf  = address[:state]
  @endereco.bairro  = address[:neighborhood]
  @endereco.cidade  = address[:city]

  render "index"
end

任何帮助都会非常感激。

提前致谢。

BR, 圣拉斐尔

0 个答案:

没有答案