ruby on rails - Ransack sorting not maintained after search, goes back to default sort -
i using ransack search on data, however, i'm finding sorting not maintained after search. reverts default sort specified in controller.
the scenario is: sort column, let's revenue, , perform search, sorting on revenue removed , goes default sort set in controller.
here controller code:
def index @q = product.ransack(params[:q]) @q.sorts = 'start_date desc' if @q.sorts.empty? @products = @q.result.page(params[:page]).per(30) end my understanding of code if sorts.empty? default sorting not applied if had sorted something. not case?
thanks!
the best solution found adding :s field manually search form using hidden field:
<%= search_form_for(@q, url: search_url) |f| %> <%= f.hidden_field :s, value: params[:q].try(:[], :s) %> <%= f.text_field :foo_eq %> <% end %> by doing :s field gets updated correct params when rendering search form. not work when not setting value manually because @q.s alias @q.sorts returns object instead of sort string.
Comments
Post a Comment