У меня есть модель счета-фактуры, которая имеет атрибут status_id, эта модель относится к моделям состояния.Rails: Виртуальная ассоциация?
Invoice.status_id может быть «0 => активным» или «2 => закрыт» в БД.
Вещь в моей модели статуса У меня также есть «: id => 1,: name => due», но это происходит только тогда, когда значение Invoice.payment_date меньше, чем сегодня.
Так что мой вопрос, как я что-то вроде
i = Invoice.find(:first)
i.status.name # i need this to return due if the Invoice.status_id == 0 and
# Invoice.payment_date < Date.today
Очевидно, что приведенный выше код всегда возвращается имя на основе значения Invoice.status_id, поскольку объединение является правильным.
Надеюсь, это имеет смысл, и кто-то может мне помочь.
Спасибо.
Что такое приведенный выше код для вас? И вы говорите: * Очевидно, что приведенный выше код всегда возвращает имя на основе значения Invoice.status_id, потому что ассоциация правильная. * - так в чем проблема? – Zabba
не проблема, это то, что я не знаю, как переопределить это поведение. Мне нужно, чтобы модель Status знала результат Invoice.status_id, и когда этот метод (Invoice # status_id, yes i переопределил атрибут с помощью метода) возвращает 5, возвращается статус с идентификатором 5. Сегодня возвращаемое состояние основано на значении value_id db. – pbruna