2012-02-23 51 views
0

我想验证用户的twitter用户名,并写了一个自定义验证。然而,即使它看起来适用于irb会话,它仍然无法正常工作。这是我的代码有自定义验证不工作Rails模型

def twitter_user      
     begin 
      @t = Twitter.user :twitter 
     rescue Twitter::Error::NotFound => e 
      @t = nil 
     end 

     errors.add(:twitter, (" username does not exist")) if @t.nil? 

    end 

我也试过这样:

def twitter_user 

      errors.add(:twitter, (" username does not exist")) unless begin Twitter.user :twitter 
      rescue Twitter::Error::NotFound => e 

      end 

     end 

即使Twitter的用户名是有效的,会出现此错误。谁能解释为什么?帮助,将不胜感激。

编辑:我已经把范围缩小到帕拉姆获得通过:叽叽喳喳,是不是从用户的输入。我如何获得用户传递的值?

+0

'开始; Twitter.user:twitter;救援Twitter :: Error :: NotFound; errors.add(:twitter,“用户名不存在”);结束' – Reactormonk 2012-02-23 11:34:18

+0

这结束了同样的问题。我想知道是否有什么我可以忽略。只是看到它在irb会话中工作,我很困惑。 – Hugs 2012-02-23 11:39:26

+0

尝试errors.add_to_base(“username does not exist”)..这会将错误添加到对象中。对于特定字段errors.add(:twitter,“username does not exist”)。我希望这个代码在型号 – Jak 2012-02-23 11:56:48

回答

0

您必须添加validate方法在你的模型

为前:

validate :user_is_exist 


def user_is_exist 
    errors.add(:twitter, (" username does not exist")) if @t.nil? 
end