【问题标题】:Rails: Handling data not found from databaseRails:处理未从数据库中找到的数据
【发布时间】:2026-01-31 14:15:02
【问题描述】:

这可能是最基本的问题之一,但我仍然认为 * 是我正确理解逻辑的最佳方式。

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

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

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

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

我能做些什么来防止这种情况发生

【问题讨论】:

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


    【解决方案1】:

    blank?代替empty?

       @tokenSelected.blank?
    

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

    【讨论】:

    • object.present? == !object.blank?。使用哪个适合。
    【解决方案2】:

    使用object.present? 它返回false 用于nil、[]、{}、空字符串和空集合。

    【讨论】: