2016-04-06 18 views
2

Sıfır veya bir öğeye sahip bir dizi verildiğinde, ilk öğeyi nasıl döndürürüm veya nil?Boş bir dizinin ilk elemanını alma

Ben çalışan kod var, ama çok şık değil:

class Category < ActiveRecord::Model 
    adapter sqlite 

    table_name "categories" 

    primary id  : Int 
    field parent_id : Int 
    field name  : String 

    # return a category or nil 
    def self.root 
    roots = where(criteria("parent_id").is_null) 

    if roots.empty? 
     nil 
    else 
     roots.first 
    end⋅ 
    end 
end 

cevap

3

Sadece dizisinde first? çağırabilirsiniz:?

def self.root 
    where(criteria("parent_id").is_null).first? 
    end 
+3

Ben ilk 'düşünce' Bir boolean dönecekti gibi Ruby sözleşmesinde. – Kris

İlgili konular