Проверка gmaps4rails

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

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 ответа

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

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

def gmaps4rails_address
  if self.ville
    "#{self.rue}, #{self.ville.nom_ville}, France"
  else
    <do something else>
  end
end
Другие вопросы по тегам