Доступ к атрибутам в модели в блоке after_validation - PullRequest
0 голосов
/ 09 января 2012

Я пытаюсь изменить атрибуты модели в обратном вызове after_validation модели, однако все @attributes возвращают ноль, поэтому метод завершается ошибкой.

Как получить доступ к @attributes ActiveRecord перед сохранением, но после проверки.Я пытаюсь получить к нему доступ из метода самого класса.

    class Business < ActiveRecord::Base
            attr_accessible :latitude, :longitude
            geocoded_by :address
            after_validation :geocode

            # Returns a human readable address from our various fields
            def address
                # All of these are nil when this gets called, from the geocode block which gets called by after_validation
                [self.street + self.street2, self.city, self.state].compact.join(', ')
            end
    end         

1 Ответ

1 голос
/ 09 января 2012

Хранение в переменной экземпляра должно работать:

after_validation {|x| @this = x; geocode}

def address
  [@this.street + @this.street2, @this.city, @this.state].compact.join(', ')
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...