Rails 3在HABTM关系中查找对象

时间:2010-09-05 16:34:51

标签: ruby-on-rails ruby-on-rails-3

让自己感到困惑。 。

我有一个SubscriptionPlan ActiveRecord对象,它有一个HABTM到available_to_roles。

在Rails 3中,我正在尝试在SubscriptionPlan上创建一个范围或类方法,以获得适当的订阅计划:

def self.available_subscription_plans(users_roles)#users_roles =角色数组
  #query查找available_to_roles在users_roles中的所有订阅计划 端

很难用新语法找出最合适的方法。

感谢您指出正确的方向!

1 个答案:

答案 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