¿Cómo puedo guardar las búsquedas de Ransack en la base de datos?

Estoy tratando de guardar las búsquedas de Ransack en la base de datos. Creo que debería ser capaz de simplemente almacenar elparams[:q] valor, luego agregue eso a la URL de búsqueda cuando quiera recuperar la búsqueda. No se como guardar elparams[:q] valor, sin embargo.

La URL que crea Ransack es algo como esto:

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

Mi ruta a la acción que guardará la búsqueda es:

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

Si uso este código en la vista:

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

Con este código en el controlador:

  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

Entonces los datos almacenados son:

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

Entonces, necesito formatear los datos de alguna manera a medida que van ingresando a la base de datos (¿y quizás también a medida que se publican?) ... He leído algo acerca de la serialización, pero no he tenido mucha suerte para que eso funcione.

Como puedo conseguirparams[:q] en mi base de datos, para usarla más tarde para recrear la URL de búsqueda completa?

Respuestas a la pregunta(1)

Su respuesta a la pregunta