2010-09-05 47 views
1

讓我感到困惑。 。 。Rails 3在HABTM關係中發現對象

我有一個SubscriptionPlan ActiveRecord對象,其中有一個HABTM to available_to_roles。

在Rails 3我試圖創建一個SubscriptionPlan範圍或類的方法獲取相應的訂閱計劃:

高清self.available_subscription_plans(users_roles)#users_roles =角色的陣列
#query找到所有訂閱計劃,其中available_to_roles在users_roles
結束

很難找出使用新語法執行此操作的最合適方法。

感謝任何指向正確方向的指針!

回答

0

混亂是由於關係定義中的拼寫錯誤和低文本對比造成的。以後回答任何人:

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