标题可能有点奇怪,但让我解释一下。
我有用户、课程和订阅模型。用户has_many :courses, :through => :subscription
和课程has_many :users, :through => :subscription
。订阅属于两者。那部分,我完全理解。我正在使用订阅模型来存储用户和课程之间的关系状态(完成、失败、删除、活动等)。
我也有这个创建关系的代码:
@subscription = Subscription.create!(:course_id => @course.id, :user_id => current_user.id)
截至目前,我没有订阅控制器,因为它们将主要通过课程视图进行管理(但我并没有以一种或另一种方式设置,我只是想做对的)。
我不明白的是如何/在哪里实现用户订阅课程的操作。它应该是 Course 控制器中的一个单独的操作,其中包含您链接到的路由,还是有另一种更好的方法来做到这一点?我想 AJAX 也是一种实现方式,但我不知道如何实现它。
我浏览了 Michael Hartl 的 rails 教程,在过去几天里进行了一些谷歌搜索,甚至浏览了 Diaspora 的源代码(因为我尝试做的操作类似于与某人交朋友,尽管关联不同) ,但我似乎无法绕过它。