我正在学习Rails,在浏览官方的guides时,我遇到了一些我无法真正理解其含义的代码。
案例1-
class Person < ApplicationRecord
validates :name, presence: true
end
在我看来,
validates
是一个以名为:name
的符号作为参数的方法但是,什么是presence
这也是一种方法吗但如果是的话,那么:
之后的presence
有什么意义呢?我知道true
的值是为presence
设置的,这是一种验证,需要存在(换句话说)但我对语法不太清楚。也可能
presence: true
只是一个散列,其中:presence
(符号)是键,true
是值。案例2-
class Person < ApplicationRecord
validates :terms_of_service, acceptance: true, message: 'must be abided'
end
同样,
validates
是将符号:terms_of_service
作为参数的方法但剩下的呢?它是一个包含两个键值对的散列,有点像{acceptance: true, message: 'must be abided'}
?如果它确实是一个散列,为什么在每种情况下都要附加到
validates
方法上?为什么不能validates :terms_of_service
acceptance: true, message: 'must be abided'
谢谢你的帮助!
最佳答案
这是向方法传递散列的语法这和validates(:terms_of_service, {acceptance: true, message: 'must be abided'})
是一回事这是向方法传递额外选项的常见方法。
关于ruby-on-rails - 在Rails中澄清Ruby语法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40700203/