让自己感到困惑。 。
我有一个SubscriptionPlan ActiveRecord对象,它有一个HABTM到available_to_roles。
在Rails 3中,我正在尝试在SubscriptionPlan上创建一个范围或类方法,以获得适当的订阅计划:
def self.available_subscription_plans(users_roles)#users_roles =角色数组
#query查找available_to_roles在users_roles中的所有订阅计划
端
很难用新语法找出最合适的方法。
感谢您指出正确的方向!
答案 0 :(得分: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