gpt4 book ai didi

ruby-on-rails - 重构具有许多查询参数的 Rails Controller ?

转载 作者:太空宇宙 更新时间:2023-11-03 17:34:03 24 4
gpt4 key购买 nike

我有一个 Rails Controller 显示操作,它显示一个团队的父团队、一个团队的子团队或完整的家谱。目前我正在做一个简单的案例陈述。这是正确的“rails ”方式还是我应该重构?如果是,将不胜感激。

if @team= fetch_team
case params[:tree]
when 'parents'
@output = @team.ancestor_ids
when 'children'
@output = @team.child_ids
when 'full'
@output = @team.full_tree
when nil
@output = fetch_team
else
@output = {message: "requested query parameter: '#{params[:tree]}' not defined"}
end

render json: @output
else
render json: {message: "team: '#{params[:id]}' not found"}, status: 404
end

##

def fetch_team
Team.find_by(name: params[:id])
end

最佳答案

我会在您的团队模型中将案例移动到它自己的方法中。

class Team
def tree(type)
...
end
end

然后在你的 Controller 中你可以有以下内容

if @team = fetch_team
@output = @team.tree(params[:tree])
render json: @output
else
render json: {message: "team: '#{params[:id]}' not found"}, status: 404
end

关于ruby-on-rails - 重构具有许多查询参数的 Rails Controller ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23414508/

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