2011-06-24 8 views
0

Ruby on Rails 3.0.7を使用していますが、クラス定数値を設定したいと思います。 hashクラスの.each_keyメソッドは値を返さないように思われるので、それはarrayクラスに対してmap方法を作るように、私は次のように実装:クラス定数の値を取得する際の改善

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