在一个模型中,我有这样的:Rails - 模型关联似乎是保存,但find()期间没有加载?
class Game < ActiveRecord::Base
has_one :turn
attr_accessor :turn
attr_accessible :turn
default_scope :include => :turn
def Game.new_game
turn = Turn.create count: 1, phase: 'upkeep', player: 1
game = Game.create turn: turn
game
end
end
class Turn < ActiveRecord::Base
belongs_to :game
end
后来,在一个控制器,我有这样的:
respond_with Game.find(params[:id])
但由于某些原因,返回游戏中有一个turn_id
是nil
没有关联的turn
对象。
为什么关联没有正确保存,或者没有正确返回find()
?
在我的移民,我想我已经设置了关联正确:
create_table :games do |t|
t.timestamps
end
def change
create_table :turns do |t|
t.string :phase
t.integer :count
t.references :game
t.timestamps
end
末
如果你想要一个游戏有一个turn_id,游戏必须'belongs_to:turn',然后轮到'has_one:game' 但是我猜游戏应该有不止一个回合?不应该游戏'has_many:转身'和turn'belongs_to:游戏'? – 2012-08-14 17:25:32
另外你如何设置一个游戏的turn_id?如果游戏没有得到转牌的参考,它将为零。你也需要在Turn模式has_many:我相信的游戏。 – TheDude 2012-08-14 18:11:43
有一个代表当前转弯状态信息的转弯。 – 2012-08-14 18:16:33