確認したいのですが
MyModel.new # ...raises an error...
そしてそれ
MyOtherModel::create_my_model # ...only this should work!
これを行う良い方法は何ですか?
ありがとうございました。
確認したいのですが
MyModel.new # ...raises an error...
そしてそれ
MyOtherModel::create_my_model # ...only this should work!
これを行う良い方法は何ですか?
ありがとうございました。
私の知る限り、直接的なものは何もありません。ただし、以下は機能するはずです。
class MyModel < ActiveRecord::Base
..
belongs_to :my_other_model
def initialize( need_this_argument = nil )
raise if need_this_argument.nil?
super() # It is important to put the () here.
end
end
class MyOtherModel < ActiveRecord::Base
...
has_one :my_model
accepts_nested_attributes_for :my_model
def create_my_model(arguments)
MyModel.new( true ) # Pass a non nil argument
end
end
MyModel.new #=> RuntimeError
a =MyOtherModel.new
b = a.create_my_model
..# ここで作業を行います
b.save
a.save