В моем проекте у меня есть модель под названием PaymentCondition
, а другая - PaymentPortion
. PaymentCondition
has_manypayment_portions
и PaymentPortion
belongs_topayment_condition
.Использовать новые значения атрибутов для проверки before_update
Когда я создаю новый PaymentCondition
, у меня есть метод, который создает пpayment_portions
. Будучи n значение атрибута :amount
от PaymentCondition
.
Если я создаю новый PaymentCondition
с amount: 2
, например, у меня было бы 2 payment_portions
.
До сих пор так хорошо.
Моя проблема:
Я использую вложенную форму с этой точки зрения, так что я могу изменить все сразу.
PaymentCondition
имеет атрибут catchments
.
PaymentPortion
имеет атрибут catchment
.
Перед этой формой завершения заполнения, я хотел бы проверить, если суммы из PaymentPortion.catchment
равно PaymentCondition.catchments
. Если нет, я должен сделать ошибку.
На данный момент, я не могу получить новые значения PaymentCondition
перед сохранением ...
Я делаю это внутри payment_conditions_controller
:
before_update :check_catchments
def check_catchments
errors.add(:catchments, "Values must check") unless catchments_check? || new_record?
end
def catchments_check?
catchment == portion_catchments
end
def portion_catchments
payment_portions.sum(:catchments)
end
Используя сумму(), Я получаю только значения, которые находятся в базе данных. Мне нужны значения, которые отправляются ...
Есть ли способ сделать это?
Заранее спасибо.
Это первое, о чем я думал, на самом деле. Второй будет делать эту проверку с помощью javascript в представлении ... Поскольку все мои другие проверки выполняются внутри моделей, я думал, что это будет какой-то способ сделать это. – ThalesMiguel