gpt4 book ai didi

ruby-on-rails - Rails 构建管理员/用户/公共(public) Controller 的方式

转载 作者:行者123 更新时间:2023-12-03 16:30:22 26 4
gpt4 key购买 nike

一个虚构的 Rails 应用程序具有以下资源:

Photographers
Images
Comments

一个 Photographer有很多 Images , 有很多 Comments
每个摄影师都有一个登录名,可以查看、上传、编辑和删除他们的图像、评论以及他们自己的个人资料。

提供管理界面,可以编辑图像、摄影师和评论。

此外,无需登录即可从公共(public)界面访问摄影师、他们的图像和他们的评论,访问者可以在其中添加评论。

我的问题是:构建 Controller 的 Rails 方式是什么?我正在考虑为每个“角色”(公共(public)、帐户、管理员)使用命名空间,如下所示:
# For administrator
Admin::PhotographersController
Admin::ImagesController
Admin::CommentsController

# For a logged in photographer
AccountController (?)
Account::ImagesController
Account::CommentsController

# For public
PhotographersController
ImagesController
CommentsController

但是 - 这些 Controller 的一些方法是重叠的。这是最好的方法,即使它不是那么干燥?

谢谢!

最佳答案

如果它们重叠,您可以将基本 Controller 扩展到帐户/管理员命名空间。例如,你做你的 ImagesController 这是每个人都可以看到的 Action 。这会像往常一样扩展 ApplicationController。然后你做你的 ImageController 的管理版本,它扩展了 ImagesController。然后您在管理版本中添加/覆盖所需的不同行为的方法,或者它可能就像添加几个之前的过滤器一样简单,例如 require_admin ,它检查 current_user 是管理员用户,如果不是。

关于ruby-on-rails - Rails 构建管理员/用户/公共(public) Controller 的方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3186720/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com