Как мне обращаться с атрибутом модели, который не соответствует параметрам запроса? - PullRequest
0 голосов
/ 29 июня 2009

У меня есть такая модель ...

Receipt
-------
amount:int  # => An amount of money stored as cents.

Но в представлении у меня есть эти поля ...

amount_dollars
amount_cents

Так что массовое назначение там не сработает.

Какой стандартный способ справиться с этой ситуацией? Где вы положили код, который преобразует входящие значения в сумму центов?

Ответы [ 3 ]

3 голосов
/ 29 июня 2009

Возможно, вы ищете виртуальные атрибуты?

Об этом есть сообщение.

Вы можете посмотреть здесь .

Существует также текстовая версия , если вам больше нравится.

1 голос
/ 29 июня 2009

добавить attr_accessors для amount_dollars и amount_cents используйте колбэк before_save для обновления суммы.

0 голосов
/ 29 июня 2009

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

def amount_dollars=(value)
  ...
end

def amount_cents=(value)
  ...
end

Они обрабатывают значения, полученные из отправленной формы. В каждом из этих методов вы соответствующим образом модифицируете атрибут количества вашей модели.

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