Rails:处理从数据库中找不到的数据

时间:2012-09-11 09:25:05

标签: ruby-on-rails database rails-activerecord

这可能是最基本的问题之一,但我仍然认为stackoverflow是我获得正确逻辑的最好方法。

我的简单问题是,如果数据库查询没有返回任何内容,您如何处理它。以下是我的代码;

@tokenSelected=Token.where(:tokenCode => "ABCDRRREF").first

稍后当我想检查@ userSelected.userID是否为空时,它会给我错误;

<h1>
  NoMethodError
    in InitsController#create
</h1>
<pre>undefined method `empty?&#x27; for nil:NilClass</pre>

我该怎么做才能阻止

2 个答案:

答案 0 :(得分:2)

而不是empty?使用blank?

   @tokenSelected.blank?

如果对象为false,空或空白字符串,则该对象为空。例如,“”,“”,nil,[]和{}都是空白的。

答案 1 :(得分:2)

使用object.present?它会返回false代表nil,[],{},空字符串和空集合。