gpt4 book ai didi

ruby-on-rails - 通过多个条件/过滤器过滤 Rails 3 数据库查询

转载 作者:行者123 更新时间:2023-12-03 18:10:15 25 4
gpt4 key购买 nike

我在这里遇到了真正的困境,而且我很确定我正在尝试做的事情相对简单。基本上,我有一个数据库(要遵循的迁移),其中列出了一堆学生和有关他们的信息。有四列,seeking_position、min_hourly、max_hourly 和 start_weeks,我需要能够在网站的前端进行过滤。现在我能弄清楚如何做的就是显示一个页面,其中列出了所有用户。我不是在这里寻找讲义,我已经经历了我所知道的一切,甚至尝试了一些我并不真正理解的东西来尝试让它工作。似乎让我绊倒的是找到一种同时过滤多种事物的方法。例如,显示seeking_position 为“internship”、min_hourly 为“7”、max_hourly 为“10”、start_weeks 为“2 到 4”的所有学生。有任何想法吗?我在 Rails 3.0.3 上使用 ActiveRecord 而没有脚手架。谢谢 :)

我的迁移:

class CreateStudents < ActiveRecord::Migration
def self.up
create_table :students do |t|
t.string :name
t.string :email
t.integer :phone
t.text :bio
t.text :resume
t.string :seeking_position
t.integer :min_hourly
t.integer :max_hourly
t.integer :start_weeks
t.string :pic_uid

t.timestamps
end
end

def self.down
drop_table :students
end
end

最佳答案

这是一组相当简单的查询条件。您还应该查看 searchlogic .它很棒,让您无需编写大量 SQL。

设置几个变量

position = "internship" 
min_hourly = 7
max_hourly = 18
start_weeks = 2..4

然后写一些这样的代码:
Student.find(:all,
:conditions => ["seeking_position = ? AND min_hourly = ? AND max_hourly = ?
AND start_weeks between ?",
position, min_hourly, max_hourly, start_weeks])

在 Rails 3 中,你可以使用新的 where()功能
Student.where(:seeking_position => position,
:min_hourly => min_hourly,
:max_hourly => max_hourly,
:start_weeks => start_weeks)

关于ruby-on-rails - 通过多个条件/过滤器过滤 Rails 3 数据库查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5236153/

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