2010-09-05 7 views
1

M'avoir confus. . .Rails 3 trouver un objet dans une relation HABTM

J'ai un objet SubscriptionPlan ActiveRecord qui a un HABTM à available_to_roles.

Dans Rails 3 Je suis en train de créer une méthode de portée ou de la classe sur SubscriptionPlan pour obtenir des plans de souscription appropriés:

self.available_subscription_plans def (de users_roles) #users_roles = Array des rôles
#query pour trouver tous les plans d'abonnement où available_to_roles est dans users_roles
end

Avoir du mal à trouver la manière la plus appropriée de le faire avec la nouvelle syntaxe.

Merci pour tous les pointeurs dans la bonne direction!

Répondre

0

La confusion était due à une faute de frappe dans la définition de la relation et au faible contraste du texte. Répondez pour tous ceux qui viendront plus tard:

class SubscriptionPlan < ActiveRecord::Base 
    has_and_belongs_to_many :available_to_roles, :join_table => "[join_table_name]", :class_name => 'UserRole' 

    scope :available_subscription_plans, lambda { |users_roles| 
    joins(:available_to_roles) 
    .where("user_roles.id IN (?) AND CURRENT_DATE > active_from_date AND CURRENT_DATE < active_to_date", users_roles)} 
end 
Questions connexes