Saat ini saya menggunakan cakupan dalam model saya untuk melakukan pencarian dalam database. Saya dapat menumpuk cakupan ini dan akan menampilkan hasil yang cocok dengan semua parameter.
scope :search_between, lambda{|begin_date, end_date|
where "sub.date BETWEEN ? AND ?", begin_date, end_date
}
Masalah yang saya alami adalah mengintegrasikan pencarian kata kunci yang akan mencari seluruh database dan menampilkan hasil yang berisi jumlah kata kunci. Saya ingin melakukan sesuatu seperti ini (ditampilkan untuk kesederhanaan):
scope :keywords, lambda{|search|
search.chomp.split(/,\s*/) do |item|
where "date like ? or city like ? or state like ?", "%#{item}%" and
where "date like ? or city like ? or state like ?", "%#{item}%" and
where "date like ? or city like ? or state like ?", "%#{item}%"
end
}
Saat ini saya menggunakan sesuatu seperti ini untuk menangani pencarian beberapa kolom:
scope :keywords, lambda{|search|
search.chomp.split(/,\s*/) do |item|
where(Sub.column_names.map {|cn| "#{cn} like ?" }.join("or "), "%#{item}%"] Sub.column_names.size)).join(' AND ')
end
}
Masalah saya adalah saya ingin melakukan beberapa "di mana ()" dalam cakupannya. Apakah mungkin dan jika ya, bagaimana caranya?