0

我尝试通过 has_and_belongs_to_many 关系将“Points”链接到“Words”。

我使用一个名为 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(main):002:0> p.words

    ?[1m?[36mWord Load (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

--> 我想要 ON words.linked_to ...我如何指定 Rails 应该在“linked_to”列上建立关系?

4

1 回答 1

0

创建一个连接表迁移 points_words,id: false 并且同时具有 point_id 和 word_id。如果你这样做,p = Point.find(:all) 并调用 p.words,它会给你所有与 p 相关的单词。

希望这可以帮助。

于 2013-02-08T11:28:49.387 回答