このコードを実行しようとすると、「self.save...」行にIllegalContextErrorが発生します。私が間違っていることを教えてもらえますか?
初期化をいじらずにPlayerでcreateメソッドを呼び出すだけですが、初期化の一部として関連する週オブジェクトを作成したいと思います。
require 'data_mapper'
DataMapper::setup(:default, "sqlite3://#{Dir.pwd}/prod.db")
class Player
include DataMapper::Resource
property :name, String, :key => true
property :sport, String
has n, :weeks
def initialize(name, sport, week)
self.save(:name => name, :sport => sport)
self.weeks.create(:id => "#{name}#{week}", :score => 0)
end
end
class Week
include DataMapper::Resource
property :id, String, :key => true
property :week, Integer
property :score, Integer
belongs_to :player
end
DataMapper.finalize.auto_migrate!
Player.new("jack", "golf", 5)