gpt4 book ai didi

ruby-on-rails - 模型中的一个或多个参数使用 Ruby on Rails 查找条件

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

假设我有模型“Car”和 Controller “cars”,以及一个方法“display”。

我有多个属性,例如:

in_production, year, make

我可以很容易地做这样的事情来找到匹配所有传递参数的汽车:

def display
@cars = Car.find(:all, :conditions => { :in_production => #{params[:in_production]}, :year => #{params[:year]}, :make => #{params[:make]} })`
end

所以我正在做的是在菜单中编码硬链接(hard link),所以如果我想找到 2009 年生产的所有 Nissan 汽车,我会将这些值作为参数传递到我的链接中。

在另一页上,我想展示 2009 年生产的每辆汽车,只有两个参数而不是三个。动态更改条件以使其在使用相同操作的同时使用一个、两个或三个参数的最佳方法是什么?

有什么想法吗?

最佳答案

首先,使用

:conditions => "in_production = '#{params[:in_production]}' AND year = '#{params[:year]}' AND make = '#{params[:make]}'"

易受 SQL 注入(inject)攻击。在数据库条件下使用它们之前,您需要对用户提供的参数进行转义。

像这样的东西应该可以让你根据参数是否存在更动态地添加条件。我没有测试它,所以我可能会很快编辑它......

def display
conditions = []
conditions << [ "in_production = ?", params[:in_production] ] if params[:in_production].present?
conditions << [ "year = ?", params[:year] ] if params[:year].present?
conditions << [ "make = ?", params[:make] ] if params[:make].present?
@cars = Car.all(:conditions => conditions )
end

关于ruby-on-rails - 模型中的一个或多个参数使用 Ruby on Rails 查找条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1658990/

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