0

書籍とカタログの 2 つのモデルがあります。

class Book < ActiveRecord::Base
   has_and_belongs_to_many :catalogs
end

class Catalog < ActiveRecord::Base
   has_and_belongs_to_many :books
end

特定のカタログのリストにのみ属する本を検索する必要があります。私が試してみました、

DEFAULT_CATALOGS = ["A","B"]
Book.joins(:catalogs).where("catalogname = ?",DEFAULT_CATALOGS)

しかし、例外 Mysql2::Error: Operand should contain 1 column(s) が発生しています:

4

1 に答える 1

0

次のいずれかである必要があります。

Book.joins(:catalogs).where("catalogs.catalogname IN (?)", DEFAULT_CATALOGS)

また:

Book.joins(:catalogs).where(:catalogs => {:catalogname => DEFAULT_CATALOGS})
于 2012-08-15T13:10:34.277 に答える