0

initialize呼び出すときにメソッドを上書きする適切な方法は何Model.createですか?私は試した:

Model < ActiveRecord::Base
  def initialize params, foo

このように呼ばれることを意図しています:

Model.create foo:'bar'

Railsを使用していませんが、ActiveRecordを使用しています。

4

2 に答える 2

3

その道から離れた方がいいです!

モデルオブジェクトを作成するために別の動作が必要な場合は、次のような別のメソッドを作成するだけです。

class Model < ActiveRecord::Base
  def self.create_with_foo params, foo
    model = self.new params
    # Do whatever you want with foo for example
    model.foo = true if foo == :foo
    model.save
    model # return the created model object
  end
end
于 2012-12-26T02:07:16.447 に答える
0

foo: 'bar'は単一の引数です:ハッシュ。これは、の省略形で{foo: 'bar'}あり、さらに。の省略形です{:foo => 'bar'}。したがって、そのように使用する場合は、1つの引数を取るように定義する必要があります。

于 2012-12-26T02:07:29.940 に答える