ror:Belongs_to has_many不进行外键检查

时间:2013-09-12 21:43:18

标签: ruby-on-rails foreign-keys has-many belongs-to

我在轨道上的红宝石中真的很新,我需要一只手。在我的模型中,我有文档和conversion_details:

class Document < ActiveRecord::Base
    belongs_to :user
    has_one :origin_details, :class_name => "ConversionDetails", :foreign_key => "origin_id"
    has_many :destination_details, :class_name => "ConversionDetails", :foreign_key => "destination_id"
    attr_accessible :extension, :name, :text
end

class ConversionDetail < ActiveRecord::Base
    belongs_to :origin, :class_name => "Documents"
    belongs_to :destination, :class_name => "Documents"
    attr_accessible :conversionDate, :requestMsg, :responseMsg, :status, :origin_id, :destination_id
end

每个conversionDetail都有一个原始文档和一个或多个相关联的文档。 Mi的问题是:

1)这个型号很好吗?因为我不能用“rails g migration .... docuemnt:reference document:reference”两次进行迁移

2)当我去rails控制台并且我这样做时:ConversionDetail.create(origin_id:500,destination_id:1000)它创建的转换但不应该因为我没有在文档中有任何带有该数字的id < / p>

请帮助我,我将不胜感激。谢谢大家,你是最棒的!

PD:对不起我的英语很糟糕

1 个答案:

答案 0 :(得分:1)

听起来你期望rails在数据库中定义外键约束。 Rails没有这样做。关联上的foreign_key只是指示要使用哪个数据库列来查找关联的记录。