带范围的默认模型输出的基本修改

时间:2009-10-16 10:11:32

标签: sql ruby-on-rails currency named-scope

我发现自己一遍又一遍地做同样的事情只是为了对标准模型输出进行一次小修改。我有一系列表格,我存储有关产品等的信息以及所有商店价格。价格以美元存储,但输出取决于用户想要的货币,存储在会话中。

示例:

Product  Detail  Blah   Price
Hammer   Red     More   5.00
Nail     Blue    Stuff  3.99

是否有一种简单的强大方法来修改输出,以便在我调用时:

Product.all

我可以附上像

这样的东西
Product.all.currency('EUR')
Product.find(22).currency('EUR')
Product.find(:all, :conditions => 'etc etc').currency('EUR')

Product.all.currency(0.69)

并简单地将价格列中的所有项目相乘? named_scope可以这样做吗?

2 个答案:

答案 0 :(得分:1)

尝试重新排序您的链接:

Product.currency(0.69).all

我没有对此进行测试,但由于您的:select包含*

,您可能会遇到其他任意情况的问题

答案 1 :(得分:0)

...没关系

 named_scope :currency, :select => '*, price * 0.63 AS price'

似乎有效,但我无法按照我的意愿将其链接到正常的查找。