variable rails ruby-on-rails ruby variables constants colon

Ruby on Rails, colon en la parte posterior o frontal de las variables



ruby on rails variable types (2)

Lo que he entendido hasta ahora es que :variable en ruby, es decir que esta variable no podrá cambiar, que es similar a constante en otro idioma.

No estoy seguro si entiendo esa declaración. En Ruby, las constantes comienzan con una letra mayúscula:

Foo = 1

La reasignación genera una advertencia:

Foo = 1 Foo = 2 #=> warning: already initialized constant Foo

Las variables comienzan con una letra minúscula y la reasignación no causa una advertencia (se supone que deben cambiar):

foo = 1 foo = 2 # no warning

Los símbolos comienzan con dos puntos:

:a_symbol :Uppercase_symbol :"i''m a symbol, too"

A menudo representan valores estáticos, por ejemplo :get y :post . Los símbolos son eficientes desde el punto de vista de la memoria, ya que se crean solo una vez: el mismo símbolo literal siempre devuelve el mismo objeto. Verificar si dos símbolos son iguales es una operación barata.

Ambas key: y method: (...) ¿Qué representa eso?

Esta es una sintaxis alternativa para hashes. Puede escribirlo en IRB para ver el resultado:

{ foo: 1, bar: 2 } #=> {:foo=>1, :bar=>2}

Hay dos puntos dobles entre las variables? ahora supongo que Blog: es una variable, y :Application es constante.

No, Blog y Application son ambas constantes y :: es el operador de resolución de alcance. Se puede usar para acceder a constantes anidadas, por ejemplo:

module Foo class Bar BAZ = 123 end end Foo::Bar::BAZ #=> 123

Soy nuevo en ruby, y usa ambos. Creo que Rails es una de las mejores API, y ruby ​​es bastante único, parece que Ruby puede hacer "suposiciones" hábilmente para ayudar al desarrollador. Pero no estoy muy seguro de qué extensión.

mis preguntas son sobre el colon en variable.
Lo que he entendido hasta ahora es que : variable en ruby, es decir que esta variable no podrá cambiar, que es similar a constante en otro idioma. ¿¿Estoy en lo correcto??

Entonces mi confusión es, a veces veo el colon enfrente de variable, como este

Rails.application.config.session_store :cookie_store, key: ''_blog_session'' <%= link_to "Delete", article, confirm: "Are you sure?", method: :delete %>

Ambas teclas: y método: tiene dos puntos al frente. ¿Qué representa eso? y además

Blog::Application.routes.draw.do root :to => "articles#index" end

Hay dos puntos dobles entre las variables? ahora supongo que Blog: es una variable, y: la aplicación es constante. lo cual dudo que sea, porque no tiene sentido. ¿Por favor iluminame?

gracias


Rails.application.config.session_store :cookie_store, key: ''_blog_session''

session_store es un método que toma dos "Argumentos":

  • :cookie_store es un símbolo
  • key: ''_blog_session'' es en realidad una forma breve de escribir un Hash .

(También podría ser session_store :cookie_store, { key: ''_blog_session'' } )

Del mismo modo para link_to "Delete", article, confirm: "Are you sure?", method: :delete

  • "Delete" es una cadena
  • article una variable
  • { confirm: ''...'', method: :delete } hash donde confirm: method: y :delete son Símbolos nuevamente.

Mientras que Blog::Application :: es básicamente un operador de resolución de espacio de nombres. Una forma de abordar la clase de Aplicación en el módulo Blog .

Espero que esto ayude. Eche un vistazo a la documentación a la que hice referencia, se explica bastante bien.