如果Ruby中的声明给了我意想不到的答案

时间:2011-12-31 03:03:39

标签: ruby-on-rails

我正在使用Ruby Twitter gem,例如,它允许您检查Twitter用户的帐户是否被锁定。我正在测试的用户帐户已被锁定。

如果我这样做

@awish = Twitter.user("twitteruser").protected?

然后在视图中执行

 <%= @awish %> 

它说“真实”

然而。当我尝试编写一个方法来测试它并根据它是否被锁定而将响应分配给变量时,它会告诉我它“没有锁定”,当我希望它说它“被锁定”时。所以我想我以某种方式把这个if / else语句搞砸了(注意,我有点像菜鸟)

你能解释一下我做错了吗?

def awisprotect
       @awish = Twitter.user("twitteruser").protected?
       if @awish == "true" 
        @answer = "locked" 
        else 
        @answer = "not locked"
        end

       render :js => "$('div.awishanswer').html(' #{ @answer } ');"
   end

2 个答案:

答案 0 :(得分:2)

“true”不是字符串,删除引号,它应该没问题。

答案 1 :(得分:2)

protected?方法应返回truefalse

(而不是"true""false"

所以你的方法可以简单得多。 (您也不需要实例变量)

def awisprotect
  if Twitter.user("twitteruser").protected?
    answer = "locked" 
  else 
    answer = "not locked"
  end
  render :js => "$('div.awishanswer').html(' #{ answer } ');"
end