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.

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs