Named_scope and :through

Bonjour à tous,

J’ai trois modèles User, Feed et Activity. J’aimerais utiliser un
named_scope à travers une association h_m :through

Dans User :
has_many :feeds, :foreign_key => “person_id”
has_many :activities, :through => :feeds, :order => ‘created_at
DESC’, :limit => 100

Et dans Activity, j’ai ajouté un named_scope :
named_scope :type, lambda { {:conditions => {:item_type =>
‘type’} } }

Et maintenant, j’essaie de faire un @user.activities.type mais cela ne
marche pas.
La classe de l’object @user.activities.type est un Object donc je ne
comprends plus trop… :slight_smile:

Merci pour votre aide!

Pierre

Un named_scope c’est à utiliser avec un find, ma si jeune buse…

@user.activities.type.all me renvoie aussi une error puisque la
méthode all n’est pas définie sur un object…

On 23 août, 22:48, “Michel B.” [email protected]

Tu as essayé avec un find ?

As tu essayé ?
named_scope :type, lambda { |type| {:conditions => {:item_type =>
type} } }

On 25 août, 04:36, Pierre V. [email protected] wrote:

Merci Michel pour votre aide.

J’ai essayé :
current_user.activities.type(‘Review’).find(:all)
wrong number of arguments (1 for 0)

Alors que quand je fais Activity.type(‘Review’).find(:all) cela
fonctionne

Merci Michel pour votre aide.

J’ai essayé :
current_user.activities.type(‘Review’).find(:all)
wrong number of arguments (1 for 0)

Alors que quand je fais Activity.type(‘Review’).find(:all) cela
fonctionne

Je rappelle ma class User

class User < ActiveRecord::Base
has_many :feeds, :foreign_key => “person_id”
has_many :activities, :through => :feeds, :order => ‘created_at
DESC’, :limit => 100
end

Apparemment, il a un ticket pour cela :
http://rails.lighthouseapp.com/projects/8994-ruby-on-rails/tickets/11
mais je n’ai pas essayé

On 24 août, 10:50, “Michel B.” [email protected]

Bonjour,

Merci Renaud. Effectivement, en changeant le nom de mon named_scope,
tout est rentré dans l’ordre…

J’en profilte pour poster l’url de cette page pour penser à vérifier
le nom de ces méthods quand il y a un problème :slight_smile:
http://wiki.rubyonrails.org/rails/pages/ReservedWords

A
bientôt,Pierre

On 26 août, 00:04, “Renaud (Nel) Morvan” [email protected]

On 25 août, 19:15, Gilles [email protected] wrote:

As tu essayé ?
named_scope :type, lambda { |type| {:conditions => {:item_type =>
type} } }

Personnellement je te déconseille d’utiliser “type” ca a été pendant
longtemps une methode interne à ruby, c’est encore limité
d’utilisation dans pas mal d’endroit de rails. Pas une bonne idée si
on veut éviter les soucis.

Sinon je confirmed named_scope sur un has_many through ca fonctionne
bien, mais il faut effectivement utiliser une méthode find ou un count
ou … sur laquelle doit s’appliquer le scope cumulé. En effet ca
masque l’association proxy qui ne retourne plus la collection.