Tôi đang cố gắng xây dựng một trang kết quả tìm kiếm trong ứng dụng đường ray của tôi (vẫn còn là một noob) và tôi không thể tìm ra cách để xây dựng một truy vấn đường ray.Làm cách nào bạn có thể xây dựng một truy vấn ActiveRecord trong Rails một cách có điều kiện?
Ví dụ: nếu không có tham số nào, tôi muốn trả về tất cả kết quả. Nếu người dùng chuyển 1 đến n tham số tùy chọn trong biểu mẫu tìm kiếm, tôi muốn thêm chúng vào truy vấn.
Tiếp theo nếu chúng có loại "giá desc" hoặc "year_built desc" hoặc thậm chí là kết hợp cả hai.
Cuối cùng sử dụng will_paginate để tách các kết quả
# default to all listings
@listings = Mls.all
@listings.where("listing_price > ?", params[:listing_price]) unless params[:listing_price].blank?
# ... bunch of other search options ...
@listings.where("property_type = ?", params[:property_type]) unless params[:property_type].blank?
# order
@listings.order("some order by param") if some sort param
@listings.order("some order by param") if some other sort param
# paginate results
@listings.paginate(:page => params[:page])
Có một "Rails" cách để làm điều này?
bạn nên mã hóa một vòng lặp và phạm vi – apneadiving
Tôi không biết nếu đây là thực sự là một câu trả lời cho câu hỏi nhưng [has_scope] (https://github.com/plataformatec/has_scope) giải quyết vấn đề của tôi khá gọn gàng. –