Rails中的自定义搜索

时间:2019-04-07 23:12:20

标签: ruby-on-rails ruby-on-rails-4

我为用户提供了使用不区分大小写的子字符串搜索各种字段的功能。

在轨道上,有没有比下面显示的更好的方法了? 我允许用户选择要搜索的字段。而不是使用html值并直接获取输入,我之所以将输入转换为控制器中的字段,部分原因是不想让用户潜在地搜索他们想要的内容,并且不希望在HTML中泄露数据库信息。

我也太谨慎了吗?谨慎谨慎吗?

控制器:

def sort_accepts
sort_criteria = params[:sort_by]
sort_criteria_map = {"Offer Number" => "offer_number", "Tracking Number" => "track_number", "Customer Name" => "customer_name", "Promo Code" => "promo_code"}
@cart_list = Cart.where("#{sort_criteria_map[sort_criteria]} ILIKE ?", "%#{params[:search_term]}%").order(created_at: :desc)
end

查看:

<%= form_tag sort_offers_path, authenticity_token: true, remote: true do %>
<%= select_tag(:sort_by, options_for_select(["Offer Number","Tracking Number","Customer Name","Promo Code"],["Offer Number"]), class: 'form-control') %>
<%= text_field_tag :search_term, nil, maxlength: '50', placeholder: 'Search Term' %>        
<%= button_tag(type: 'Search', name: 'Sort', value: true, data: { disable: true }) do %>
<% end %>

我还计划为搜索字符串添加至少2个或3个字符的限制,以使用户无法通过搜索nil来转储整个表

0 个答案:

没有答案