1

在我的应用程序Users中可以Like Programs. 每一个都是一个模型,Like是多态的。

在某些时候,我会想看到所有UsersaLikeProgram所有Programsa User Likes

在和控制器中有一个likeslikers控制器动作会更好吗?或者我应该将控制器作为嵌套资源,同时具有 a和操作(或检查正在使用哪个嵌套资源的索引)?usersprogramslikesusersprograms

我意识到所有这些都可以工作,但不确定 Rails 的最佳实践是什么。

4

2 回答 2

1

我将构建您的应用程序,使其具有返回用户喜欢的 sUsersController的成员操作。然后有一个与成员动作,它给出了喜欢那个程序的s。likesProgramProgramsControllerlikersUser

为了进一步简化事情,您还可以只在show操作中包含用户的喜欢,(同样,在程序的操作中显示喜欢程序的用户show),尽管您最终可能会show通过执行获取更多信息而不是操作中所需的信息就这样。

于 2013-04-02T03:10:30.410 回答
1

放心,您将拥有一个 LikesController,其中的“创建”操作将采用 user_id 和 program_id。用户很可能会登录(并且不会在 URL 中传递),并且创建一个 Like,将 program_id 传递给看起来像这样的 url 是有意义的:

POST /likes, :params => { :program_id => ___ }

您可能想要显示喜欢列表(索引页面),也许允许用户编辑和删除。如果是这种情况,您的所有操作都将在 likes_controller 上进行。通常,这取决于您的情况,但宁静的设计通常是正确的起点。

于 2013-04-02T04:50:13.913 回答