gpt4 book ai didi

mysql - 按 2 个参数搜索

转载 作者:行者123 更新时间:2023-11-29 18:30:35 25 4
gpt4 key购买 nike

class Expense < ActiveRecord::Base
belongs_to :category
end

class Category < ActiveRecord::Base
has_many :expenses
end

class ExpensesController < ApplicationController
def index
if params[:concept] || params[:category_id]
search = "%" + params[:concept] + "%"
@expenses = Expense.where("concept LIKE ? OR category_id = ?", search, params[:category_id])


else
@expenses = Expense.order("date DESC")
end
end
end

嗨,我需要按 2 个参数进行搜索。 Concept 是一个 text_field,category_id 是一个 select_tag。

我使用的是sqlite3。

我需要获得相同的结果: http://localhost:3000/expenses

以及: http://localhost:3000/expenses?utf8=%E2%9C%93&concept=&category_id=

如果你愿意,你可以使用我的种子:

restaurantes = Category.create(name: "Restaurantes")
carro = Category.create(name: "Carro")
hogar = Category.create(name: "Hogar")

Expense.create(category: restaurantes, date: Date.current, concept: "Hamburguesas el burral", amount: 32000)
Expense.create(category: restaurantes, date: Date.current - 4, concept: "Hamburguesas el burral", amount: 45000)
Expense.create(category: carro, date: Date.current, concept: "Gasolina", amount: 80000)
Expense.create(category: hogar, date: Date.current - 6, concept: "Lámparas", amount: 350000)

最佳答案

改变范围而不是使用 OR。

class ExpensesController < ApplicationController
def index
@expenses = Expense.order("date DESC")
if params[:category_id].present?
@expenses = @expenses.where(category_id: params[:category_id])
end
if params[:concept].present?
@expenses = @expenses.where("concept LIKE ?", "%#{params[:concept]}%")
end
end
end

关于mysql - 按 2 个参数搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45723748/

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