У меня есть класс квартиры с attr_accessor названия приезда (не должен быть сохранено в БД)attr_accessor из одного класса возвращает NIL в ассоциированном классе
class Apartment < ActiveRecord::Base
attr_accessible :checkin
attr_accessor :checkin
has_many :rooms
has_many :beds through: rooms
end
В моем контроллере я устанавливаю значение CheckIN в
def show
@apartment.update_attributes(checkin: session[:checkin])
end
Когда страница делает я называю методом слоя, который пытается получить доступ к self.room.apartment.checkin
, но я получаю значение ноля
Этих метод вызывается методом в квартире. Я отклонил вызов, и когда я внутри модели квартиры, переменная checkin имеет значение. Почему я получаю ноль, когда звоню с кровати? Спасибо всем помощникам!
Я вижу .. Поэтому я должен, вероятно, передать его как параметр из метода в квартире, который вызывает метод в постели. Спасибо –
Подожди, я немного смущен. Это одна и та же квартира, но это не тот же пример? Не сохраняются ли attr_accessors между запросами? –
Нет, они этого не делают - это потребует настойчивости. При каждом запросе этого метода контроллера show show, Rails загружает запрошенную Квартиру new из базы данных и помещает ее в переменную экземпляра '@ apartment'. Все, что не сохраняется в базе данных, теряется. – janfoeh