【问题标题】:Rails 3 finding object in a HABTM relationshipRails 3在HABTM关系中查找对象
【发布时间】:2010-09-05 16:34:51
【问题描述】:
让自己感到困惑。 . .
我有一个 SubscriptionPlan ActiveRecord 对象,它有一个 HABTM 到 available_to_roles。
在 Rails 3 中,我尝试在 SubscriptionPlan 上创建范围或类方法以获得适当的订阅计划:
def self.available_subscription_plans(users_roles) #users_roles = 角色数组
#query 查找 users_roles 中 available_to_roles 中的所有订阅计划
结束
很难用新语法找出最合适的方法。
感谢您提供正确方向的任何指示!
【问题讨论】:
标签:
ruby-on-rails
ruby-on-rails-3
【解决方案1】:
混淆是由于关系定义中的拼写错误和文本对比度低造成的。为稍后出现的任何人回答:
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