initialize
呼び出すときにメソッドを上書きする適切な方法は何Model.create
ですか?私は試した:
Model < ActiveRecord::Base
def initialize params, foo
このように呼ばれることを意図しています:
Model.create foo:'bar'
Railsを使用していませんが、ActiveRecordを使用しています。
initialize
呼び出すときにメソッドを上書きする適切な方法は何Model.create
ですか?私は試した:
Model < ActiveRecord::Base
def initialize params, foo
このように呼ばれることを意図しています:
Model.create foo:'bar'
Railsを使用していませんが、ActiveRecordを使用しています。
その道から離れた方がいいです!
モデルオブジェクトを作成するために別の動作が必要な場合は、次のような別のメソッドを作成するだけです。
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
foo: 'bar'
は単一の引数です:ハッシュ。これは、の省略形で{foo: 'bar'}
あり、さらに。の省略形です{:foo => 'bar'}
。したがって、そのように使用する場合は、1つの引数を取るように定義する必要があります。