Man*_*iri 1 ruby validation syntax ruby-on-rails
我正在学习Rails,在浏览官方指南时,我遇到了一些我无法理解其含义的代码.
情况1 -
class Person < ApplicationRecord
validates :name, presence: true
end
Run Code Online (Sandbox Code Playgroud)
在我看来,这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
Run Code Online (Sandbox Code Playgroud)
同样,validates是将符号:terms_of_service作为参数的方法.但其余的呢?它是一个具有2个键值对的哈希,有点像{acceptance: true, message: 'must be abided'}吗?
如果它确实是一个哈希值,为什么validates在每种情况下它都被添加到方法中?为什么不能
validates :terms_of_service
acceptance: true, message: 'must be abided'
Run Code Online (Sandbox Code Playgroud)
谢谢您的帮助!
这是将哈希传递给方法的语法.这是做什么的validates(:terms_of_service, {acceptance: true, message: 'must be abided'}).这是将额外选项传递给方法的常用方法.
| 归档时间: |
|
| 查看次数: |
80 次 |
| 最近记录: |