Проверка 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