gpt4 book ai didi

sql - 用排序重构 Ruby on Rails link_to

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

一般而言,我对 Rails、数据库和 Web 开发还很陌生,现在我的功能正在运行,但我 100% 确定这不是最干净或最符合 Ruby 风格的实现方式。基本上我想使用两个单独的链接按不同的列对同一个表进行排序,而不使用两个 Controller 操作和两个 View 。我宁愿只使用一个索引操作,该操作采用一个参数来指示如何对返回的数据进行排序。

当前 Controller :

Controller

def index
@casinos = Casino.order('name ASC')
end

def casinos_by_region
@casinos = Casino.order('location ASC')
end

和 View 中的链接

 %h3 Sort by:
= link_to 'Name', casinos_path
%br
= link_to 'Location', casinos_by_region_path

我阅读了文档,但没有看到使用 link_to 路径将参数从 View 传递到 Controller 的明显方法?我知道我可以用其他方式做到,但我拒绝相信我不能用这种方式做到。抱歉这个愚蠢的问题!

最佳答案

对 CDub 竖起大拇指。只是为了增强它,您可能希望通过确保 params[:sort_param] 包含预期值来为排序增加一点安全性,以防有人决定键入 url。下面的代码不仅确保您有一个可接受的排序键,而且还为第一次访问 url 提供默认值。

def index
params[:sort_param] = %w{name location}.include?(params[:sort_param]) ? params[:sort_param] : 'name'
@casinos = Casino.order "#{params[:sort_param]} ASC"
end

关于sql - 用排序重构 Ruby on Rails link_to,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19968638/

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