Named Scope Ausdruck

Hallo,

ich hänge gerade etwas fest.

Es gibt dises model:

class Product < ActiveRecord::Base

has_many :covers
has_many :assets, :through => :covers

end

Ich benötige für das model einen named scope, der mir nur solche
products
liefert, die mindestens ein asset haben.

Meine Idee war das hier:

named_scope :with_assets,
:include => :assets,
:conditions => [‘count(assets.id) > 1’]

Aber da wird eine exception geworfen:

ActiveRecord::StatementInvalid: Mysql::Error: Invalid use of group
function:
SELECT products.id AS t0_r0, products.legacy_id AS t0_r1,
products.product_type_id AS t0_r2, products.manufacturer_id AS
t0_r3,
products.active AS t0_r4, products.created_at AS t0_r5,
products.updated_on AS t0_r6, products.name AS t0_r7,
products.description AS t0_r8, products.identity_key AS t0_r9,
products.price AS t0_r10, products.vat AS t0_r11,
products.weight AS
t0_r12, products.comment AS t0_r13, products.subtitle AS t0_r14,
assets.id AS t1_r0, assets.name AS t1_r1, assets.extension
AS t1_r2,
assets.content_type AS t1_r3, assets.image_width AS t1_r4,
assets.thumbnail_width AS t1_r5, assets.updated_on AS t1_r6,
assets.created_at AS t1_r7, assets.title AS t1_r8,
assets.description AS t1_r9, assets.comment AS t1_r10 FROM
products
LEFT OUTER JOIN covers ON (products.id = covers.product_id)
LEFT
OUTER JOIN assets ON (assets.id = covers.asset_id) WHERE
(count(assets.id) > 1)

Ich sehe gerade nicht, wo mein Fehler liegt. Hat jemand vielleicht einen
Tip?

Viele Grüße und schon mal vielen Dank fürs lesen

Michael K.

müsste es nicht heissen

… HAVING count(assets.id)>1

?

Am 23.06.2008 um 20:30 schrieb Michael K.:

products.manufacturer_id AS t0_r3, products.active AS t0_r4,
assets.comment AS t1_r10 FROM products LEFT OUTER JOIN


rubyonrails-ug mailing list
[email protected]
http://mailman.headflash.com/mailman/listinfo/rubyonrails-ug


Siebert WD
Michael S.
Trappenweg 6, 15749 Mittenwalde, Deutschland

Nope, nicht wirklich. Hat sich aber eh erledigt, weil das Covers-Model
besser
für meine Auflistung geeignet ist.

Michael S. schrieb: