0

コントローラーコード:

  def create

    if current_user.id != params[:friend_id]
      @return = { :curr_user_id => current_user.id, :params_id => params[:friend_id], :debug => 1 }
    else
      @return = { :curr_user_id => current_user.id, :params_id => params[:friend_id], :debug => 2 }
    end

    render :json => ActiveSupport::JSON.encode( @return )

  end

socurrent_user.id1でありparams[:friend_id]、ajax 呼び出しを介して渡されており、その値も1です

問題は、この場合 false を返す必要があるときに常に true を返すことです...整数ではなく文字列として解析される数値 1 に関係することはありますか?

4

1 に答える 1

6

params は常に文字列です。次を使用します。

if current_user.id != Integer(params[:friend_id])

はお勧めしませんto_i。理由を見てください。

"abc".to_i     # => 0 which is unexpected
Integer("abc") # => raises error, which is fine
于 2012-09-15T18:58:50.427 に答える