0

標準モデルの出力に小さな変更を加えるためだけに、同じことを何度も繰り返していることに気づきました。製品などに関する情報を格納する一連のテーブルと、そのすべてが価格を格納しています。価格は米ドルで保存されますが、出力は、ユーザーがセッションに保存したい通貨によって異なります。

例:

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)

Price 列のすべてのアイテムを単純に乗算しますか? named_scope はこれを行うことができますか?

4

2 に答える 2

1

次のように連鎖を並べ替えてみてください。

Product.currency(0.69).all

私はそれをテストしていませんが、含まれているため、他の任意の条件に問題がある可能性があり:selectます*

于 2009-10-16T13:09:33.640 に答える
0

どうでも...

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

私が望むように通常の検索にチェーンできないことを除いて、うまくいくように見えました。

于 2009-10-16T10:39:13.017 に答える