2011-01-02 2 views
0

Ich erstelle einen Newsletter.Hilf mir mit Abfrage String-Parameter (Rails)

Jede E-Mail enthält einen Link für Ihr Abonnement Bearbeitung:

<%= edit_user_url(@user, :secret => @user.created_at.to_i) %> 

: secret => @ user.created_at.to_i Benutzer verhindert jede andere Profile bearbeiten.

def edit 
    @user = user.find(params[:id]) 
    if params[:secret] == @user.created_at.to_i 
    render 'edit' 
    else 
    redirect_to root_path 
    end 
end 

Es funktioniert nicht - Sie werden immer zu root_path umgeleitet.

Es funktioniert, wenn ich es wie folgt ändern:

def edit 
    @user = user.find(params[:id]) 
    if params[:secret] == "1293894219" 
    ... 

1293894219 die "created_at.to_i" für einen bestimmten Benutzer ist.

Haben Sie irgendwelche Ideen warum?

Antwort

2
if params[:secret] == @user.created_at.to_i.to_s 

Der Parameter ist eine Zeichenfolge, keine Ganzzahl.

+0

Großes Dankeschön an Sie sir :) Ich sollte mehr über dieses Zeug lernen –

+0

Kein Problem! Ich erinnere mich, dass es eine große Lernkurve war - ich werde immer noch von solchen Dingen überrascht. – stef