이 코드를 실행하려고하면 "self.save ..."행에서 IllegalContextError가 발생합니다. 내가 뭘 잘못하고 있는지 말해 줄 수있어?datamapper 모델을 저장하려고 할 때 IllegalContextError를 어떻게 해결할 수 있습니까?
저는 Player에서 initialize를 사용하지 않고 create 메소드를 호출하기 만합니다. 그러나 관련 week 객체가 초기화의 일부로 생성되기를 바랍니다.
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)
코드 예제에 좀 더 많은 작업을 할 수 있습니까? 이것도 분석합니다. – mbj
내 잘못, 내가 최종 및 초기화 물건을 넣어 야합니다. 그것은 어리석은 것처럼 보일지 모르지만 사람들이 왜 코드를 실행하여 IllegalContextError를 얻었는지 알 필요가 없다고 생각합니다. 나는 다음 번에 실수하지 않을 것입니다. – JoeyC