尝试通过belongs_to关联两条记录时遇到问题:
class Enrollment < ActiveRecord::Base
belongs_to :offering,
foreign_key: [:term_id, :class_number]
end
@enrollment = Enrollment.new
@enrollment.offering = Offering.last
这引发:
ActiveModel::MissingAttributeError: can't write unknown attribute `[:term_id, :class_number]'
我做错了什么?
答案 0 :(得分:0)
另一方面,你可以使用一个由视图支持的模型,使用一个具有rails友好ID的表(比如my_offerings
)和另一个表中的两个PK列( term_id
,class_number
)并将其与代码中的其他表连接。
然后,有一个小进程解析offerings
表,并构建任何丢失的my_offering
记录。
最后视图将有一个ID,视图中的连接(对于rails来说是透明的)将处理复合键。