gem 'ransack'

gem 'ransack'

使用:

  • params 使用:q 代替:search
  • 使用search_form_for而不是form_for
  • 需要调用Ransack#result获取搜索结果

controller:

def index
  @q = Person.ransack(params[:q])
  @people = @q.result(distinct: true)
end

view

<%= search_form_for @q do |f| %>

  # Search if the name field contains...
  <%= f.label :name_cont %>
  <%= f.search_field :name_cont %>

  # Search if an associated articles.title starts with...
  <%= f.label :articles_title_start %>
  <%= f.search_field :articles_title_start %>

  <%= f.submit %>
<% end %>

界面中的排序

<%= sort_link(@q, :显示的字段, 描述, default_order: :desc) %>

你可能感兴趣的:(gem 'ransack')