gpt4 book ai didi

ruby-on-rails - 重定向或显示部分内容?

转载 作者:数据小太阳 更新时间:2023-10-29 07:56:06 28 4
gpt4 key购买 nike

我有一个用户可以拥有 0 到很多业务。

我要显示:

  • 新的业务页面(如果用户尚未创建任何业务)或
  • 演艺事业页面(如果他们有 1 个业务)或
  • 业务索引页(如果有超过 1 个业务)。

我应该把这个逻辑放在哪里?在 View 中还是在 Controller 中?

例如在 Controller 中:

if !@user.businesses.any?
redirect_to new_user_business_path(@user)
elsif @user.businesses.count == 1
redirect_to business_path(@user.businesses.first)
elsif @user.businesses.count > 1
redirect_to businesses_path(@user)
end

或在 View 中:

<% if !@user.businesses.any? %>
<%= render partial 'no_businesses' %>

等等

在 View 中似乎不正确,但我认为请求最佳实践会很好。

最佳答案

如果逻辑不能脱离主流,可以作为主流的特性放入 View 。如果逻辑与另一个逻辑分开,则控制逻辑的代码应放入 Controller ,或者如果代码太大,则放入 Controller helper 。

所以你的代码如果只是主视图的一部分,即没有 else 语句,或者如果它有 else 语句,但有不重要的变化或效果图,逻辑可以作为它的一部分放入 View 中:

<% if !@user.businesses.any? %>
<%= render partial 'no_businesses' %>
<% end %>

如果您有 else 语句,并且它对主要操作 View 有重大更改,请将逻辑放入 Controller ,并为每种情况生成两个 View 。

但是正是针对您的情况,我会放置逻辑或 Controller 的助手,并在 Controller 内部使用它。

关于ruby-on-rails - 重定向或显示部分内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21569185/

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