我该如何处理与请求参数不匹配的模型属性?

时间:2009-06-28 21:04:20

标签: ruby-on-rails ruby

我有这样的模特......

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

但在视图中我有这些领域......

amount_dollars
amount_cents

所以群发作业不会在那里发挥作用。

处理这种情况的标准方法是什么?你把把传入值转换成代码的代码放在哪里?

3 个答案:

答案 0 :(得分:3)

您可能正在寻找虚拟属性?

有关于它的轨道广播。

你可以watch it here

如果你更喜欢它,还有text-based version of it

答案 1 :(得分:1)

为amount_dollars和amount_cents添加attr_accessors。使用before_save回调来更新金额。

答案 2 :(得分:0)

您可以为视图中的每个字段定义所谓的虚拟属性。

def amount_dollars=(value)
  ...
end

def amount_cents=(value)
  ...
end

这些处理来自提交表单的值。在每种方法中,您都可以适当地修改模型的金额属性。