Доступ к значениям базы данных отдельно от аксессоров Activerecord - PullRequest
4 голосов
/ 27 октября 2011

Я пытаюсь установить свой собственный метод для переопределения свойства базы данных, чтобы я мог перехватить значение, где значение базы данных равно нулю.

Похоже, что Rails позволяет мне устанавливать метод с тем же именем, что и столбец базы данных, однако мне потребуется альтернативный способ доступа к значению базы данных, чтобы вернуть то, что я хочу.

Представьте, что у меня есть столбец базы данных "дата", и я хочу установить его в другое значение, когда оно равно нулю в базе данных.

Я хотел бы установить метод, как показано ниже

def date
 if (alternative_db_value_object).date == nil
  "Put this"
 else
  "Put that"
 end
end

В качестве альтернативы я был бы очень признателен, если бы кто-нибудь мог предложить лучший способ сделать это.

1 Ответ

7 голосов
/ 27 октября 2011

.. в методе date вы можете использовать

self[:date]

или

read_attribute(:date)

UPDATE: кажется, это больше не работает на рельсах 5. Одинпредполагается использовать super:

def length=(minutes)
  super(minutes.to_i * 60)
end

def length
  super / 60
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...