我有一个应用程序可以跟踪玩家在健身计划中的进度。所以每个玩家都有多个相同的 :week_id 周
Week_id 结合belongs_to 关系是Week 记录的复合主键。
但是,当我尝试使用属于不同玩家的相同 week_id 创建两个星期时,我收到“column week_id is not unique”错误。
我觉得我走在正确的轨道上,因为当我想获取周记录时,它告诉我需要两个参数来获取它 - week_id 和 player_id。
我可能在这里遗漏了一些简单的东西。我希望你能给我看。
require "rubygems"
require "json"
require "sqlite3"
require "data_mapper"
require "bigdecimal"
DataMapper::setup(:default, "sqlite3://#{Dir.pwd}/prod.db")
DataMapper::Model.raise_on_save_failure = true
class Player
include DataMapper::Resource
property :name, String, :key => true
property :age, Integer
has n, :weeks
end
class Week
include DataMapper::Resource
property :week_id, Integer, :key => true
property :score, Integer
belongs_to :player, :key => true
end
DataMapper.finalize.auto_migrate!
@jack = Player.create(:name => "jack")
@jack.weeks.create(:week_id => 1)
@jill = Player.create(:name => "jill")
@jill.weeks.create(:week_id => 1)