проверка gmaps4rails - PullRequest
       4

проверка gmaps4rails

0 голосов
/ 30 декабря 2011

Я столкнулся со следующей ошибкой при отправке пустого адреса (улица + город).

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'

Моя модель

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 пусто).

Почему gmaps4rails не добавляет ошибок в модель Venue?

Извините за мой английский, Спасибо,

Нельсон

Ответы [ 2 ]

2 голосов
/ 30 декабря 2011

Я думаю, дело не в gmaps4rails. По сути, вы только что создали место, а не установили ville, поэтому в gmaps4rails_address вы пытаетесь получить доступ к nom_ville для объекта nil. Чтобы избежать этого, вам просто нужно провести тест в этом методе, а затем начнется базовая валидация, так как требуются ру и вилл.

0 голосов
/ 20 сентября 2013

Вы можете сделать что-то вроде этого:

def gmaps4rails_address
  if self.ville
    "#{self.rue}, #{self.ville.nom_ville}, France"
  else
    <do something else>
  end
end
...