Путаница между хешами и символами - PullRequest
0 голосов
/ 11 декабря 2018

Можете ли вы помочь мне понять концепцию, лежащую в основе хэша, особенно когда мы используем символы.

: имя - это символ, верно?

мы можем использовать символ в качестве ключа для нашего хэшированного права?

:name и name: например: это два синтаксиса, но он описывает символ правильно?

когда у нас есть это, например:

Geocode.configure(

units: :km

)

Здесь Unit делает ссылку на указанный аргумент, называемый модулями в функции configure, верно?и: km - это символ, который мы хотим отправить через переменную единицу, или я ошибаюсь?

Последний пример:

validates :home_type, presence: true

Здесь мы пытаемся отправить в функцию validates символ home_typeверно?

и второй аргумент называется «присутствие», и мы хотим передать логическое значение true через эту переменную, верно?

Извините, если вы не поняли мой вопрос, не так ли?стесняйтесь спрашивать меня.

У меня много головокружений, разбирающихся в этих синтаксисах.

Большое спасибо!

Ответы [ 2 ]

0 голосов
/ 11 декабря 2018

Это очень простой и ничего, кроме упрощенного соглашения в ruby ​​

validates :home_type, presence: true, if: :check_user

похоже на

validates :home_type, { :presence => true, :if => :check_user }

Поэтому, когда я пишу как,

link_to 'Edit', edit_path(user), class: 'user_one', id: "user_#{user.id}"

Выше link_to - это метод ActionHelper, который принимает 3 аргумента, где последним является хеш { class: 'user_one', id: "user_#{user.id}" }

0 голосов
/ 11 декабря 2018
Geocode.configure(units: :km)

Мы передаем хэш методу configure.Это хеш {units: :km}.Удобный синтаксис для {:units => :km}.Таким образом, хеш с парой ключ-значение с символом ключа (:units) и символом значения (:km).

validates :home_type, presence: true

Здесь мы передаем методу validates символ :home_type ихэш {presence: true} или {:presence => true}.Таким образом, ключ является :presence символом, значение является логическим true.

...