2017-09-09 3 views
-1

Ich würde wissen, wie ein params in einer Variablen definieren esdefinieren eine params in einer Variablen

In meinem Controller in einem anderen Verfahren zu verwenden i Ergebnisseite und Kontaktseite haben, möchte ich die Suche speichern params von Ergebnisseite in Variablen und sie in meiner Kontaktseite Methode erhält nicht Formularfelder

Meine Ergebnisseite

def result 
    if params[:room_type].present? && params[:location].present? && params[:nb_piece].present? 
      @biens = Bien.near(params[:location], 1, units: :km).where(room_type: params[:room_type], nb_piece: params[:nb_piece]) 
    end 
     @users = User.where(id: @biens.reorder(:user_id).pluck(:user_id), payer: true) || User.where(id: @biens.reorder(:user_id).pluck(:user_id), subscribed: true) 
end 

ich möchte speichere diese params in meinem anderen Verfahren, wie das Duplikat muß ich nur E-Mail und Telefon fragen, in mein Formular

def contact 
    wufoo(params[:location], params[:room_type], params[:nb_piece], params[:email], params[:phone]) 
end 

Mein Wufoo

def wufoo(adresse, type, pieces, email, phone) 
    require "net/http" 
    require "uri" 
    require "json" 

    base_url = 'https://wako94.wufoo.com/api/v3/' 
    username = 'N5WI-FJ6V-WWCG-STQJ' 
    password = 'footastic' 

    uri = URI.parse(base_url+"forms/m1gs60wo1q24qsh/entries.json") 

    request = Net::HTTP::Post.new(uri.request_uri) 
    request.basic_auth(username, password) 

    request.set_form_data(
     'Field7' => adresse, 
     'Field9' => type, 
     'Field12' => email, 
     'Field11' => phone, 
     'Field8' => pieces 
    ) 

     response = Net::HTTP.start(uri.hostname, uri.port, :use_ssl => uri.scheme =='https'){ 
      |http|http.request(request) 
     } 

     puts JSON.pretty_generate(JSON[response.body]) 
end 

Antwort

1

Es hängt davon ab, wie ein Benutzer geht von der Suche zu kontaktieren. Ich gehe davon aus, dass das Kontaktformular von der Suche verlinkt ist und Sie sich bezüglich der Informationen in der letzten Suche mit Ihnen in Verbindung setzen möchte.

Eine einfache Methode wäre hier, die letzte Suche innerhalb der Sitzung zu speichern und nur darauf zu verweisen.

def search 
    store_params_in_session 
    # .. your search logic here 
end 

def contact 
    last_search = session[:last_search] 
    if last_search.blank? 
    # .. some error handling if no search is available 
    return 
    end 

    wufoo(last_search[:location], #.. you get the idea 
end 

private 

def store_params_in_session 
    session[:last_search] = { 
    location: params[:location], 
    # .. more params here 
    } 
+0

Danke für Ihre Hilfe, ich habe versucht Ihre Lösung, aber ich habe nicht erfolgreich, meine Params in Sitzung zu speichern –

Verwandte Themen