2016-04-06 9 views
2

要素がゼロまたは1つの配列が与えられた場合、最初の要素またはnilのどちらを返すのですか?空の配列の最初の要素を取得する

私が働いて、コードを持っているが、それは非常にエレガントではありません。

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 

答えて

3

あなたは、単にアレイ上first?を呼び出すことができます。

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

私が最初に '思っ'ブール値を返します、と? Rubyの大会では – Kris

関連する問題