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

所以current_user.id1并且params[:friend_id]是通过 ajax 调用传递的,它的值也是1

问题是在这种情况下它应该返回 false 时它总是返回 true ......有什么与数字 1 被解析为字符串而不是整数有关吗?

4

1 回答 1

6

参数总是字符串,使用:

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 回答