2011-06-24 32 views
0

我正在使用Ruby on Rails 3.0.7,並且想要設置類CONSTANT值。由於一個hash.each_key方法似乎因爲它使一個map方法array類沒有返回值,我實現了以下內容:改進檢索類常量的值

class User < ActiveRecord::Base 
    return_values = [] 
    CONSTANT = (1..1).map { |e| 
       HASH.each_key { |key| 
        return_values << key.to_s 
       } 
       return_values 
       }.flatten 
end 

上面的代碼對我的作品,但它是被很遠「好「的代碼。 我該如何改進?

回答

2

我認爲你正在尋找

CONSTANT = HASH.keys.map(&:to_s) 
+0

@mckeed - 什麼是指 ':' 一部分? – user502052

+0

它相當於'HASH.keys.map {| key | key.to_s}'。它基本上使得一個方法的名字不存在。您可以通過搜索Symbol#to_proc來了解有關'&'符號的信息。 – mckeed

+0

@mckeed - 如果我不想調用方法'to_s',我該怎麼辦? – user502052