Rails: 如何构建用户 model/controller 来处理保存到收藏夹?

Rails: How to structure a user model/controller to handle saving to favorites?

我正在构建一个 Rails 应用程序,其中包含有关美国国会的数据。每个立法者都有自己的页面。我希望我的应用程序的用户能够将特定立法者添加到他们的收藏夹中。我在我的应用程序中创建了立法者资源和用户资源。我也有一个 has_many 通过关联的收藏夹模型。

用户模型如下所示:

class User < ActiveRecord::Base
  has_many :favorites
  has_many :legislators, through: :favorites
  has_many :bills, through: :legislators
end

我还没有实现 "add legislator to favorites" 功能。目前用户 update/edit 页面仅用于更新用户信息。

我的问题是如何design/structure此功能。我是否应该向 User 模型添加一个方法到收藏夹中的 add/remove 立法者,并修改 User 控制器中的 update 方法来处理 adding/removing 收藏夹?或者我应该改用收藏夹控制器?

我有几个关于如何做到这一点的想法,但我不确定 cleanest/RESTful 方法是什么。

使用收藏夹控制器。当用户收藏立法者时,他们是 'creating' 最喜欢的记录。当他们 un-favourite 立法者时,他们是 'destroying' 最喜欢的记录。

所以,您可能根本不需要 update。使用 favourites#createfavourites#destroy。这是 rest-ful 方式。

至于将逻辑放入模型与控制器中,对于如此简单的事情,我个人只是将其放入控制器中。