Ruby on rails 创建Rails ActiveRecord时出错:通过

Ruby on rails 创建Rails ActiveRecord时出错:通过,ruby-on-rails,activerecord,Ruby On Rails,Activerecord,课堂上 class Idea < ActiveRecord::Base 然后,使用此代码插入时: self.similar_ideas << idea unless self.id == idea.id 有人能弄明白吗?非常感谢 首先,由于这些是两个或多个模型之间的关联,因此从两个或所有方向查看关联会很有帮助。这是多对多协会吗?一对多 其次,我不相信您在模型中正确地声明了您的关联(正如bricker在评论中提到的)。看起来您试图将关联放在属性上,而不是放在另一个模型上。这不

课堂上

class Idea < ActiveRecord::Base
然后,使用此代码插入时:

self.similar_ideas << idea unless self.id == idea.id

有人能弄明白吗?非常感谢

首先,由于这些是两个或多个模型之间的关联,因此从两个或所有方向查看关联会很有帮助。这是多对多协会吗?一对多

其次,我不相信您在模型中正确地声明了您的关联(正如bricker在评论中提到的)。看起来您试图将关联放在属性上,而不是放在另一个模型上。这不是该机制的意图。这基本上是一种简化如何声明和使用具有某种关系的模型的方法。多对多是其中一个更复杂的,因为它有一个连接表,通过这些关联特别简化了它


我建议你读这篇你误用了很多东西的精彩文章。请仔细检查一下。这也将有助于张贴完整的想法和类似的模型。对不起,我忘了把代码的另一面。这就像:class SimilarIdea“idea”,:foreign\u key=>“idea\u id”属于:SimilarIdea,:class\u name=>“idea”,:foreign\u key=>“similaride\u idea\u id”endIt是一个多对多的关联。代码是这样的:类SimilarIdea“idea”,:foreign\u key=>“idea\u id”属于:SimilarIdea“idea”,:foreign\u key=>“similaring\u idea\u id”end您的联接表有ActiveRecord吗?是的。如前所述,它被称为SimilarIdea。我发现这是命名的问题。。。对于所属:类似的想法与类名“SimilarIdea”同名。这篇文章对我帮助很大。
self.similar_ideas << idea unless self.id == idea.id
NoMethodError: undefined method `create!' for []:Array