gpt4 book ai didi

ruby-on-rails - 这种 Rails 3 Controller 方法让我看起来很胖吗?

转载 作者:行者123 更新时间:2023-12-04 06:13:44 24 4
gpt4 key购买 nike

这是一个新应用程序,我在搜索 Controller 上有一个索引方法。这也是应用程序的主页,我正在尝试从设计模式的角度来判断我是否走错了路。

该方法已经有 35 行了。以下是该方法的作用:

3 行设置变量以确定正在搜索的分层数据的“级别”。

另外 10 行根据子域是否在请求中填充一些 View 变量。

重定向到两个页面之一的 10 行部分:

1) 如果用户没有访问权限,并且已登录但尚未请求访问权限,请告诉他们“单击此处请求访问该品牌”。

2) 如果用户没有访问权限、已登录并且已经请求访问权限,请告诉他们“某某正在审核您的请求”。

另外 10 行用于构建动态区域。

我无法直接理解如何分离这些关注点,或者即使它们应该分离。感谢您提供的任何帮助!

最佳答案

总结你所说的类似代码的内容(抱歉,不了解 ruby​​;将其视为伪代码):

void index() {
establishHierarchyLevel();
if (requestIncludedSubdomain())
fillSubdomainFields();
else
fillNonsubdomainFields();
if (user.isSignedIn() && !user.hasAccess()) {
if (user.hasRequestedAccess())
letUserIn();
else
adviseUserOfRequestUnderReview();
}
buildDynamicArelWhateverThatIs();
}

14 行而不是 35 行(当然,提取的方法主体会拉长整体代码,但您可以看看这个并知道它在做什么)。值得做吗?这实际上取决于您或后续程序员是否更清楚。我的猜测是值得这样做,将小代码块拆分成它们自己的方法将使代码更易于维护。

关于ruby-on-rails - 这种 Rails 3 Controller 方法让我看起来很胖吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4024835/

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