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 Kastner
_______________________________________________
rubyonrails-ug mailing list
[email protected]
http://mailman.headflash.com/mailman/listinfo/rubyonrails-ug

Antwort per Email an