Trong Rails của tôi 4 ứng dụng tôi đã thiết lập này:Làm thế nào để loại bỏ các tham số trống từ tham số băm?
class InvoicesController < ApplicationController
def index
@invoices = current_user.invoices.search(params)
end
...
end
class Invoice < ActiveRecord::Base
belongs_to :user
def self.search(params)
data = all
data = data.where("number LIKE ?", "%#{params[:number]}%") if params[:number]
data = data.where("total > ?", params[:minimum]) if params[:minimum]
data = data.where("total < ?", params[:maximum]) if params[:maximum]
data
end
...
end
Vấn đề là tôi có một loạt các thông số GET khác mà tất cả đều là một phần của params
băm. Làm cách nào để tôi có thể xóa các thông số trống khỏi URL để tôi không kết thúc bằng các URL như:
/invoices?after=&before=&maximum=&minimum=&number=
Cảm ơn bạn đã trợ giúp.
Để làm rõ, đang nói rằng khi bạn gửi biểu mẫu, bạn không muốn các lĩnh vực có sản phẩm nào được gửi qua URL? Nếu vậy, bạn có thể cần phải sử dụng JS để chặn biểu mẫu và xóa các mục trống trước khi gửi. –