2011-06-18 3 views
14

は、私が入力するように求めています:Rubyでは "より大きい"演算子=>とは何ですか?ルビーon Railsのチュートリアルで

class Post < ActiveRecord::Base 
    validates :name, :presence => true 
    validates :title, :presence => true, :length => { :minimum => 5 } 
end 

私はこれが何をするかを理解し、私は=>演算子が何であるかを知っていただきたいと思います。 PHPの土地では、連想配列のキーと値をリンクします。それはここで同じことですか?それはRuby演算子かRails演算子ですか?

+0

[Rubyでは "=>"とはどういう意味ですか、それはどのように動作しますか?](http://stackoverflow.com/questions/4663074/in-ruby-what-does-mean-and-how-それは仕事ですか) –

答えて

20

主にハッシュ内のキーの値を設定するルビ演算子です。したがって、この例では、一つのエントリで5ハッシュの値にマップキーとして最小:

{ :minimum => 5 } 

は、シンボルを持つルビーハッシュです。同じ:

:presence => true 

まだハッシュです。しかし、ルビでは、メソッドがあれば、ハッシュを囲む{}を省略することができます。これがvalidatesメソッドで起こることです。これはメソッドなので、渡されたハッシュに明示的に{}は必要ありません。

+1

すばらしい説明!ありがとう。だから、{:presence => true}のように聞こえるかもしれませんが、メソッドにパラメータとしてハッシュを渡すとき、RoRのカスタムではありません。 –

+2

はい、あなたも{}と一緒に使うことができますが、人々はそれを省略する傾向があります:)(私はそれも省略します) – Spyros

関連する問題