首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >gmaps4rails验证

gmaps4rails验证
EN

Stack Overflow用户
提问于 2011-12-30 22:01:07
回答 2查看 471关注 0票数 0

当我提交一个空地址(街道+城市)字段时,我遇到了以下错误。

代码语言:javascript
复制
undefined method `nom_ville' for nil:NilClass

app/models/venue.rb:15:in `gmaps4rails_address'
app/controllers/venues_controller.rb:74:in `block in create'
app/controllers/venues_controller.rb:73:in `create'

我的模型

代码语言:javascript
复制
class Venue < ActiveRecord::Base
  belongs_to :profile
  belongs_to :type
  belongs_to :ville
  belongs_to :departement
  belongs_to :region
  has_and_belongs_to_many :games

  acts_as_gmappable

  validates :rue, :nom, :ville_id, :region_id, :departement_id, :presence => true

  def gmaps4rails_address
    "#{self.rue}, #{self.ville.nom_ville}, France"
  end
end

nom_ville来自Ville model,但尚未创建对象Venue,因为验证失败(:rue:nom为空)。

为什么在Venue模型上添加gmaps4rails not错误?

对不起,我的英语,谢谢,

纳尔逊

EN

回答 2

Stack Overflow用户

发布于 2011-12-30 22:58:47

我认为这与gmaps4rails无关。基本上,您只是创建了一个场所,而没有设置ville,所以在gmaps4rails_address中,您尝试在nil对象上访问nom_ville。您只需要在此方法中进行一次测试来避免这种情况,然后基本的rails验证将生效,因为rue和ville是必需的。

票数 2
EN

Stack Overflow用户

发布于 2013-09-20 09:12:01

你可以这样做:

代码语言:javascript
复制
def gmaps4rails_address
  if self.ville
    "#{self.rue}, #{self.ville.nom_ville}, France"
  else
    <do something else>
  end
end
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8680223

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档