gpt4 book ai didi

ruby-on-rails - Ruby on Rails : If you have 50 if-else statements in your after_create action, 会减慢您的应用程序吗?

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

使用 50 个 if-else 语句对于一项操作来说是否过于耗费资源?

我正在做这样的事情:

if team.players.count > 1
assign_team_type(..)
elsif team.players.count > 3
assign_team_type(..)
...
etc.
...
end

此外,将 50 个 if-else 语句放在 Controller 内的 create 操作中而不是 after_create 方法是否更有效?还是改用 case switch 语句或完全避免使用它会更有效?

编辑:感谢您的快速回复!该代码用于社区体育锦标赛,根据该队的球员人数分配球队。我正在尝试编写一些东西,根据添加到该团队的玩家数量为每个团队分配一个团队类型。所以有 1 名玩家、3 名玩家、5 名玩家、7 名玩家等的团队,最多 200 名玩家,总共需要 50 个 if-else 语句。

在用户访问 http://localhost/players/new 之后,语句发生在 players_controller 中, 添加一个玩家,然后应用程序根据该团队当前有多少玩家来决定分配他或她的团队的团队。它非常简单(一个基本的 CRUD 应用程序只需要这 50 个 if-else 语句)

models:

Team (has_many :players)
Player (belongs_to :team)

scaffold team name:string team_type:string
scaffold player team_id:integer name:string

差不多就是这样:)

最佳答案

您可以尝试将其重写为


assign_team_type(case team.players.count
when 2 then ...
when 3..5 then ...
else raise "Assignment failed"
end
)

这应该会更快,因为 team.players.count 只计算一次。此外,它更干净、更短。基准测试会有所帮助。

关于ruby-on-rails - Ruby on Rails : If you have 50 if-else statements in your after_create action, 会减慢您的应用程序吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2200360/

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