ruby-on-rails - 在用户使用 Ruby 中的地理编码器唱歌期间进行地址验证
问题描述
我试图在用户注册 ruby on rails 期间包含地址验证。用户必须以街道地址、城市和邮政编码的形式输入他们的地址。我使用这个在用户控制器中实现了一些地址验证:
after_validation :geocode
has_secure_password
validates :address, presence: true
validate :found_address_presence
def found_address_presence
if latitude.blank? || longitude.blank?
errors.add(:address, " wasn't found.")
end
end
def full_address
[address, city, state, zip_code, 'USA'].compact.join(', ')
end
但是,这总是返回找不到地址的错误,即使地址有效也是如此。我已经确认我输入的地址是真实的,并且在删除验证时有效。为什么这不起作用?似乎纬度和经度总是空白的,但是当地址验证被删除时,它们似乎被适当地添加了。
解决方案
我认为这里的问题是第一行after_validation :geocode
直到验证后才填写经度和纬度。所以validate :found_address_presence
总会有空白的纬度和经度。如果您将第一行更改为before_validation :geocode
,那么我认为它应该可以工作。
推荐阅读
- blogger - 有什么方法可以使用 www.blogname,blogspot.com 使我的 blogspot 页面可访问
- gatsby - 如何将用于生产的图像从资产复制到公共/资产
- python - 如何丰富与其他数据字段的 viur 关系
- voice - 谷歌语音助手从网络上拾取音频
- dynamics-crm - D365 中实体的托管组件是否存在在某些系统更新后发生更改的风险?
- python - 处理 csv 文件 - 这个简单的代码有什么问题?
- sql - 喜欢和计数使 sql server 处理器 100%
- reactjs - 为什么组件在反应钩子中不刷新?
- php - 两个不同的 Laravel 应用程序之间的交叉身份验证
- javascript - 无法在 Angular 拦截器上获取 HTTP 标头