首先,我的模型:
User has_many :subscriptions
has_many :courses, :through => :subscriptions
Subscription belongs_to :both
Course has_many :subscriptions
has_many :users, :through => :subscriptions
获取用户订阅的课程很容易:
@subscribed_courses = current_user.courses
现在,我想获取与 current_user 没有关联的 5 个随机课程的列表(对于用户主页上的“您可能还喜欢...”功能)。最好的方法是什么?选择所有课程然后在 ruby 中将散列限制为仅不在@subscribed_courses
实例变量中的课程是否有效?如果这是最好的方法,我会怎么做?
编辑:
例如,Course.joins(:subscription)
会给我与订阅相关的所有课程。我想查询用户未订阅的课程,包括尚未订阅的课程(因此,与订阅无关)。抱歉,我之前没有说得更清楚。