Ruby on rails ActiveRecord外键设置为空
我正在使用Ruby 1.8.7和Rails 2.3.8,我有以下根资源:Ruby on rails ActiveRecord外键设置为空,ruby-on-rails,ruby,activerecord,Ruby On Rails,Ruby,Activerecord,我正在使用Ruby 1.8.7和Rails 2.3.8,我有以下根资源: class PointOfInterest < ActiveRecord::Base set_primary_key "Id" set_table_name "POI" has_many :attributes, :foreign_key => 'POIId' end 这是对根(PointOfInterest)和Multimedia记录的正确持久化。但是,属性未正确持久化。当感兴趣点的外键被正
class PointOfInterest < ActiveRecord::Base
set_primary_key "Id"
set_table_name "POI"
has_many :attributes, :foreign_key => 'POIId'
end
这是对根(PointOfInterest
)和Multimedia
记录的正确持久化。但是,属性
未正确持久化。当感兴趣点的外键被正确设置(POID
)时,Multimedia
记录的外键保持为null
任何关于这一点的线索都非常感谢
谢谢 您的关系/外键被设置为交叉用途 如果
属性有一个多媒体,则需要多媒体模型声明属于:属性,并且多媒体表包含属性的外键
我猜您不能更改数据库模式(否则,我不得不问您为什么使用非Rails标准表和键名);在这种情况下,您需要切换关系的意义。Make属性属于:multimedia
,并且多媒体有一个:属性
。然后,属性
表中的多媒体
FK指向正确的方向。感谢您的快速响应!我试过了,但结果是一样的。属性
表中的POID
设置正确,但多媒体记录的ID(属性
表中的值
列)不正确。
class Attribute < ActiveRecord::Base
set_primary_key "Id"
set_table_name "Attribute"
belongs_to :point_of_interest, :foreign_key => 'POIId'
has_one :multimedia, :foreign_key => 'Id', :primary_key => 'Value'
end
class Multimedia < ActiveRecord::Base
set_primary_key "Id"
set_table_name "Multimedia"
end
poi = PointOfInterest.new
attr = poi.attributes.new
attr.SomeAttribute = 1
attr.build_multimedia(:content => 'test')
poi.save