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… 
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 
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.