0

自己参照関連付けがhabtmあります。

class Label < AR::B
   has_and_belongs_to_many :a_label, :class_name => "Label",
            :join_table => "a_labels",
            :foreign_key => "label_id",
            :association_foreign_key => "a_label_id",
            :uniq => true
end

しかし、クエリを作成するとき(を使用squeel):

Label.select{:title}.where do
        id.in(Label.select{:a_label_id}.joins(:a_labels).where{
            labels.title.in(list)
          })

スキーマ:

 labels:
 id | title | description | created_at

 a_labels
 label_id | a_label_id    

エラーが発生しました:

ActiveRecord::ConfigurationError:
   Association named 'a_labels' was not found; perhaps you misspelled it? 

どこを間違えた?ありがとう。

4

1 に答える 1

1

関連付け名に「s」を追加するだけでよいようです。「a_label」の代わりに「a_labels」に変更します。

class Label < AR::B
  has_and_belongs_to_many :a_labels, ...
    ...
end
于 2012-07-14T17:49:03.580 に答える