在课堂上
class Idea < ActiveRecord::Base
similar_idea_ids&amp;的属性similar_ideas断言如下:
has_many :similar_idea_ids, :class_name => "SimilarIdea", :foreign_key => "idea_id"
has_many :similar_ideas, :through => :similar_idea_ids, :class_name => "Idea"
然后,使用此代码插入时:
self.similar_ideas << idea unless self.id == idea.id
我有错误:
NoMethodError: undefined method `create!' for []:Array
有人可以解决这个问题吗?非常感谢!
答案 0 :(得分:0)
首先,由于这些是两个或更多模型之间的关联,因此从两个或所有方向查看关联会很有帮助。这是一个多对多的协会吗?一对多?
其次,我不相信你已经在模型中正确地宣布了你的关联(正如砖块在他的评论中提到的那样)。您似乎试图在属性上而不是在另一个模型上建立关联。这不是该机制的意图。它基本上是一种简化声明和使用具有某种关系的模型的方法。由于具有连接表,因此具有连接表的多对多是其中之一,这些关联特别简化。
我建议您阅读这篇精彩的guide on ActiveRecord associations