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

Popular posts from this blog

java - Spring Data JPA: Why findOne(id) executing delete query internally? -

python - Mongodb How to add addtional information when aggregating? -

java - Incorrect order of records in M-M relationship in hibernate -