2011-01-02 15 views
0

私はニュースレターを作成しています。クエリ文字列パラメータ(Rails)のヘルプ

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

各電子メールは、サブスクリプションを編集するためのリンクが含まれている秘密=> @ user.created_at.to_iがお互いのプロフィールを編集することからユーザーを防ぐことができます。

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

あなたは常にroot_pathにリダイレクトされます。

私はこのようにそれを変更する場合、それは動作します:

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

1293894219は、特定のユーザーのための "created_at.to_i" です。

理由はありますか?

答えて

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

パラメータは整数ではない文字列です。

+0

大きなあなたにありがとう:私はこのものについてもっと学ぶ必要があります –

+0

問題はありません!私はそれが大きな学習曲線だったことを覚えています - 私はまだこれのようなものによってキャッチされます。 – stef

関連する問題