Rails, 严格关联

Rails, strict associations

我已经创建了我的模型:

class Vehicle < ActiveRecord::Base
 belongs_to :player
 has_one :basis
 has_one :carcass
 has_one :weapon
end

我怎样才能让这个模型只有在得到它的玩家、基础、尸体、武器时才能自救?我需要在验证中添加什么?

您可以使用 Active Record's validations 功能在对象进入数据库之前验证对象的状态。

在您的车辆模型中,按如下方式定义您的验证:

class Vehicle < ActiveRecord::Base
  belongs_to :player
  has_one :carcass
  has_one :weapon

  validates :player,  presence: true
  validates :carcass, presence: true
  validates :weapon,  presence: true
end

如果您的任何参考资料丢失,这应该会阻止您的 Vehicle 被保存。

祝你好运!

编辑

您可以缩短验证规则:

validates :player, :carcass, :weapon, presence: true