我尝试将“Points”链接到“Words”并与has_and_belongs_to_many关系。
我使用名为dictionnaries_points的表,其中包含“dictionnary_id”和“linked_to”列。
我在模型中指定了我的专栏
的名称“linked_to”class Point < ActiveRecord::Base
has_and_belongs_to_many :words, :association_foreign_key => "linked_to"
end
class Word < ActiveRecord::Base
has_and_belongs_to_many :points, :foreign_key => "linked_to"
end
所以我没有任何错误,但是:
Rails没有给出与“linked_to”列中的整数匹配的所有单词....
Rails只在我的单词表中使用“word_id”而不是“linked_to”建立链接,因为此处的查询显示:
IRB(主):002:0&GT; p.words
?[1m?[36mWord负载(0.0ms)?[0m] ?[1mSELECT“words”。* FROM“words”INNER JOIN“points_words”ON “words”。“id” =“points_words”。“linked_to”WHERE“points_words”。 “point_id”= 1?[0m
- &GT;我想要ON words.linked_to ...如何指定Rails应该在“linked_to”列上建立关系?
答案 0 :(得分:0)
创建一个连接表,迁移points_words,其id为false,并且两者都有 point_id和word_id。 如果你这样做,p = Point.find(:all) 并调用p.words,它将为您提供与p。
相关的所有单词希望这有帮助。