0

ビューで呼び出される1,25ですべての整数を乗算したいと思います。

ヘルパーメソッドを作成してビュー内のすべての整数に適用せずにこれを行うための賢い方法はありますか?

例:

class Product < ActiveRecord::Base
  attr_protected :id
    #pesudo code
    def integer
    this * 1.25
    end

end

コントローラで実行できる場合に最適です。

4

1 に答える 1

1

たとえば、Productモデルにvalue属性がある場合は、クラスメソッドを作成するだけで、そのタイプの任意の場所で任意のオブジェクトに対してそれを呼び出すことができます。

class Product < ActiveRecord::Base
  value_with_weight weight
    value*weight
  end
end

次に@product.value_with_weight(1.25)、たとえば、好きな場所で使用します。

編集:あなたが実際に求めているのは、特定のモデルのスコープ内でIntegerクラスをオーバーライドしたいように聞こえます。これは、それを達成するためのかなり恐ろしい方法です。ただし、Ruby2.0でリファインメントが行うことを意図しているように聞こえます

于 2013-03-25T11:47:28.167 に答える