Jak mogę zapisać wyszukiwania Ransack w bazie danych?

Próbuję zapisać wyszukiwania Ransack w bazie danych. Wierzę, że powinienem być w stanie po prostu przechowywaćparams[:q] wartość, a następnie dołącz ją do adresu URL wyszukiwania, gdy chcę przywołać wyszukiwanie. Nie wiem jak uratowaćparams[:q] wartość jednak.

Adres URL tworzony przez Ransack wygląda mniej więcej tak:

http://site.com/search?utf8=%E2%9C%93&q%5Bone%5D=something&q%5Btwo%5D=&q%5Bthree%5D=&q%5Blow_number%5D=0&q%5Bhigh_number%5D=300000&q%5Bfour%5D=&commit=Search

Moja trasa do akcji, która zapisze wyszukiwanie to:

match 'users/:id/saved_search_add' => 'users#saved_search_add', :as => :saved_search_add

Jeśli użyję tego kodu w widoku:

<%= link_to('Save Search', saved_search_add_path(current_user, :q => params[:q])) %>

Z tym kodem w kontrolerze:

  def saved_search_add
    @saved_search = Search.create(:query => params[:q].to_hash, :user_id => @user.id)

    respond_to do |format|
      if @saved_search.save
        format.html { redirect_to(:back) }
      else
        format.html { redirect_to(:back) }
      end
    end
  end

Następnie przechowywane są następujące dane:

--- !ruby/hash:ActiveSupport::HashWithIndifferentAccess
one: ''
two: ''
three: ''
low_number: '0'
high_number: '300000'
four: ''

Muszę więc jakoś sformatować dane, ponieważ przechodzą one do bazy danych (a być może także, gdy wychodzą?) ... Czytałem coś o serializacji, ale nie miałem wiele szczęścia, aby to zadziałało.

Jak mogę zdobyćparams[:q] do mojej bazy danych, aby później móc odtworzyć pełny adres URL wyszukiwania?

questionAnswers(1)

yourAnswerToTheQuestion