Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails ActiveModel::MissingAttributeError:can';不写入未知属性_Ruby On Rails_Ruby_Rails Activerecord - Fatal编程技术网

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]'