2011-06-18 14 views
14

En un tutorial de Ruby on Rails, me pide que escriba:¿Cuál es el operador "igual a mayor que" => en Ruby?

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

entiendo lo que hace esto, pero me gustaría saber lo que el operador => es. En PHP-land, vincula una clave y un valor en una matriz asociativa. ¿Es lo mismo aquí? ¿Es un operador de Ruby o un operador de Rails?

+0

posible duplicado de [En Ruby, ¿qué significa "=>" y cómo funciona?] (Http://stackoverflow.com/questions/4663074/in-ruby-what-does-mean-and-how- does-it-work) –

Respuesta

20

Es principalmente un operador de rubí que establece el valor de una clave dentro de un hash. Por lo tanto:

{ :minimum => 5 } 

es un hash de rubí que tiene el símbolo: mínimo como una clave que se asigna al valor de 5. Un hash con una entrada, en este ejemplo. Lo mismo para:

:presence => true 

Still a hash. Sin embargo, en ruby, cuando tienes un método, puedes omitir el {} que rodea un hash. Eso es lo que sucede con el método validates. Es un método y, por lo tanto, el hash pasado no necesita explícitamente {}.

+1

¡Gran explicación! Gracias. Parece que {: presence => true} también sería válido, pero no es la costumbre en RoR, al pasar un hash como parámetro a un método. –

+2

Sí, también puedes usarlo con {}, aunque la gente tiende a omitirlo :) (lo omito también) – Spyros

Cuestiones relacionadas