0

我有一个简单的授权功能,但我很难正确实施。每个帖子在创建时都会发出一个 :key_code ,用户(未会话)可以键入代码并删除他们的帖子。问题是,无论他们为 key_code 键入什么,对象都会被传递。

为什么这总是返回 0?

    field :key_code, type: Integer

    def self.auth(id, key_code)
        post = Post.where(:id => id).first

        puts key_code        #for testing:
        puts post.key_code   #for testing: 

        if post.key_code == key_code
          return 1
        else
          return 0
        end

end

控制台测试:

1.9.3p194 :001 > a = Post.auth('5032f3254ff9fcf10100001b','42745590875')
42745590875
42745590875
=> 0 
4

2 回答 2

2

看起来您使用的是赋值运算符 ( =) 而不是相等 ( ==)。将该行更改为:

if post.key_code == key_code
于 2012-08-21T04:27:09.497 回答
0

我得到了它。它还将第二个数字作为字符串传递!多哈

于 2012-08-21T04:49:48.707 回答