【发布时间】:2014-05-30 04:53:21
【问题描述】:
下面是我使用地理编码器的课程。我无法检查通过地理编码器输入的地址是否有效。当我添加公司/编辑具有地址的公司时,此代码效果很好,当通过地理编码器提供纬度和经度时。但是我需要代码才能工作,因此当用户尝试在编辑或创建公司时输入不提供纬度和经度的地址时,会弹出错误并通知用户该地址无效。
型号
class Company < ActiveRecord::Base
validates :name, presence: true, length: { maximum: 30 }
validates :website, presence: true
validates :address, presence: true
validates :description, presence: true
validates :primary_field, presence: true
geocoded_by :address
before_save :geocode, if: ->(obj){ obj.address.present? and obj.address_changed? }
after_save :set_popup_value
private
...
end
查看
<% provide(:title, 'Add Company') %>
<h1>Add Company</h1>
<div class="row">
<div class="span6 offset3">
<%= form_for(@company) do |f| %>
<%= render 'shared/error_messages' %>
<%= f.label :name %>
<%= f.text_field :name %>
<%= f.label :website %>
<%= f.text_field :website %>
<%= f.label :primary_field %>
<%= f.select :primary_field, @primary_field %>
<%= f.label :address %>
<%= f.text_field :address, :placeholder => '123 Test St, City State Zip'%>
<%= f.label :description %>
<%= f.text_area :description, :size => "30x5" %>
<%= f.submit "Add Company", class: "btn btn-large btn-primary" %>
<% end %>
</div>
</div>
【问题讨论】:
-
你是要SO给你写地址验证码吗?
-
不,我只是不知道在哪里/如何检查地址是否有效。所以基本上,当用户点击“添加公司”按钮时,如果用户输入的地址地理编码器无法返回经纬度,那么我需要引发错误。但我不知道该怎么做。
标签: ruby-on-rails ruby rails-geocoder