【问题标题】:Filtered Search in Rails 4 using ActiveRecord Querying InterfaceRails 4 中使用 ActiveRecord 查询接口的过滤搜索
【发布时间】:2017-02-18 22:51:26
【问题描述】:

我在执行搜索时设置了一些过滤器。我有另一个我正在尝试实现的搜索过滤器,但似乎无法让它工作。我在 first_name last_name 和为此构建视图时遇到问题。

控制器:

if params[:address_search]
   @payment_requests = @payment_requests.where('full_address ILIKE ?', "%#{params[:address_search]}%")

   unless params[:unit_search].blank?
      @payment_requests = @payment_requests.where('unit ILIKE ?', "%#{params[:unit_search]}%")
   end
elsif params[:client_search]
   @payment_requests = @payment_requests.where('email ILIKE ?', "%#{params[:client_search]}%")
elsif params[:first_name] || params[:last_name]
   @payment_requests = PaymentRequest.includes(:detail).where(payment_details: { first_name: params[:first_name], last_name: params[:last_name]})
   end
else
   @payment_requests = @payment_requests.active
end

观看次数:

<div class="form-group">
   <%= text_field_tag 'client_search', '', id: 'pay-client-search', placeholder: 'Email Search', class: 'general-text-area pay-filter' %>
</div>

【问题讨论】:

    标签: ruby-on-rails postgresql activerecord model-view-controller


    【解决方案1】:

    你可以试试这个

    key = "%#{search_text}%"
    
    @payment_requests = PaymentRequest.joins(:detail).where('payment_details.first_name LIKE :search OR payment_details.last_name LIKE :search', search: key)
    

    P.S: 这个没试过。

    【讨论】:

    • key = "%#{search_text}%" 是否进入视图?
    • 没有。它应该在控制器中。 search_text 应替换为您的变量名。例如:key = "%#{params[:first_name]}%"
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-08-19
    • 1970-01-01
    • 2014-06-08
    • 1970-01-01
    • 2015-09-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多