请帮助我理解哈希背后的概念,尤其是当我们使用符号时。
:name是符号对吗?
我们可以将symbol用作哈希右键的键吗?
:name
和name:
例如:这是两种语法,但是它描述了符号对吗?
当我们有这样的例子时:
Geocode.configure(
units: :km
)
在这里,units对配置函数中称为unit的指定参数进行引用吗?和:km是我们要通过可变单位发送的符号,还是我错了?
最后一个例子:
validates :home_type, presence: true
在这里,我们尝试将符号home_type向右发送给validates函数吗?
,第二个参数命名为“ presence”,我们想通过此变量发送布尔值true吗?
很抱歉,如果您不明白我的问题,请随时询问我。
我对这些语法有很多了解。
非常感谢!
答案 0 :(得分:1)
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
。
答案 1 :(得分:1)
这是非常基本的,只是简化了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}" }