has_and_belongs_to_many 関係で「ポイント」を「単語」にリンクしようとしています。
「dictionnary_id」列と「linked_to」列を含む dictionnaries_points という名前のテーブルを使用します。
モデルで、列の名前「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は単語テーブルで「linked_to」ではなく「word_id」とのリンクのみを作成します。
irb(メイン):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
--> words.linked_toを ON にしたい ... Rails が "linked_to" 列でリレーションシップを作成するように指定するにはどうすればよいですか?