ruby-on-railsruby

What is the "equals greater than" operator => in Ruby?


In a Ruby on Rails tutorial, I am asked to type:

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

I understand what this does, but I would like to know what the => operator is. In PHP-land, it links a key and a value in an associative array. Is it the same thing here? Is it a Ruby operator or a Rails operator?


Solution

  • It is mainly a ruby operator that sets the value of a key inside a hash. Thus :

    { :minimum => 5 }
    

    Is a ruby hash that has the symbol :minimum as a key that maps to the value of 5. A hash with one entry, in this example. Same for :

    :presence => true
    

    Still a hash. However, in ruby, when you have a method, you can omit the {} that surround a hash. That is what happens with the validates method. It's a method and thus the passed hash does not explicitly need {}.