Sto provando a salvare il sito di provenienza di un utente al momento della registrazione. In questo momento ho un before_filter nel mio ApplicationController:Come salvare il referer http nelle guide
before_filter :save_referer
def save_referer
unless is_logged_in?
session['referer'] = request.env["HTTP_REFERER"] unless session['referer']
end
end
Poi, quando si crea un utente, controlla questa variabile di sessione e lo imposta a zero. A volte questo non funziona e sono preoccupato che potrebbero esserci delle cose non intenzionali che accadono nell'usare una sessione come questa. Qualcuno ha un modo migliore? O forse qualche input?
EDIT: ci
def create
@user = User.new(params[:user])
if @user.save_with(session[:referer])
....
end
utente
def save_with(referer)
self.referer = referer unless referer == "null"
self.save
end
è alcuna ragione per cui questo non dovrebbe funzionare: Questa è la logica che sto usando per salvare il referer?
"a volte, questo non funziona" <- cosa fa? È normale che non si abbia sempre un referente. Se l'utente inserisce il tuo url direttamente, non c'è un referente. –
Questo era in Rails 3 per caso? – marcamillion
Inoltre, ti dispiacerebbe postare il codice che hai funzionato? In questo modo, hai eliminato tutto quanto sopra, incluse le cose nell'azione 'create' e semplicemente lo sostituisci con il codice nella risposta accettata nel controller dell'applicazione? Usi ancora il metodo 'save_with (referer)' per esempio? Sto cercando di fare la stessa cosa, quindi mi piacerebbe sapere come sei riuscito a risolvere questo, se l'hai fatto. Grazie. – marcamillion