【发布时间】:2020-02-28 18:45:47
【问题描述】:
我真的被卡住了......这似乎很简单,但我真的错过了一些东西...... 所以,我正在构建一个产品展示页面。我想制作一个表单字段,在输入邮政编码时返回用户的状态。
这是我的表单,它是 show.html.erb。我希望信息也出现在此视图中:
<%= form_tag product_path, method: :get do %>
<%= text_field_tag :cep,
params[:cep],
class: "form-control mr-2",
placeholder: "13087560",
maxlength: 8
%>
<%= submit_tag "find", class: "btn-flat my-3 my-0" %>
<% end %>
<p class="product-data"><%= @uf %></p>
这是我的控制器:
class ProductsController < ApplicationController
require 'open-uri'
def index
if params[:query]
@products = Product.search(params[:query])
else
@products = Product.all
end
respond_to do |format|
format.html
format.js
end
end
def show
@product = Product.find(params[:id])
end
def uf_search
if params[:cep]
@uf = JSON.parse(open("https://viacep.com.br/ws/#{params[:cep]}/json/").read)
@uf = @uf['uf']
@uf
end
end
end
它没有给我任何错误,但信息只是没有显示在视图上......而且@uf 值为 nil。
【问题讨论】:
-
这里没有问题。我认为表单网址有问题。我猜该请求不会执行 uf_search 操作。检查表单 url 和 routes.rb。
标签: ruby-on-rails json parsing search model-view-controller