Ruby on rails ActiveModel::MissingAttributeError:can';不写入未知属性
我在尝试通过“所属对象”关联两条记录时遇到问题:Ruby on rails ActiveModel::MissingAttributeError:can';不写入未知属性,ruby-on-rails,ruby,rails-activerecord,Ruby On Rails,Ruby,Rails Activerecord,我在尝试通过“所属对象”关联两条记录时遇到问题: class Enrollment < ActiveRecord::Base belongs_to :offering, foreign_key: [:term_id, :class_number] end @enrollment = Enrollment.new @enrollment.offering = Offering.last 我做错了什么?不幸的是,Rails不支持复合键。如果你需要这样的东西,你最好有一个习惯:有
class Enrollment < ActiveRecord::Base
belongs_to :offering,
foreign_key: [:term_id, :class_number]
end
@enrollment = Enrollment.new
@enrollment.offering = Offering.last
我做错了什么?不幸的是,Rails不支持复合键。如果你需要这样的东西,你最好有一个习惯:有很多人喜欢@yannick的评论 另一方面,您可以使用视图支持的模型,使用具有rails友好ID的表(例如
my\u Offices
),以及来自另一个表的两个PK列(term\u ID
,class\u number
),并在代码中将其与另一个表连接
然后,使用一个小流程解析产品
表,并构建任何缺少的我的产品
记录
最后,视图将有一个ID,视图中的连接(对于rails是透明的)将处理复合键。如果传递一个外键,它是否有效?(从Rails的角度来看,不是从数据模型的角度来看。)是的,提供一个键是可行的,但不幸的是我需要两个键(我无法控制表);我不认为Rails会自动使用多个外键,这就是错误消息所暗示的。
ActiveModel::MissingAttributeError: can't write unknown attribute `[:term_id, :class_number]'