gpt4 book ai didi

ruby-on-rails - 澄清 Rails 中的 Ruby 语法

转载 作者:太空宇宙 更新时间:2023-11-03 17:09:43 25 4
gpt4 key购买 nike

我正在学习 Rails 并正在学习官方 guides , 我遇到了一些我无法真正理解其含义的代码。

案例一——

class Person < ApplicationRecord
validates :name, presence: true
end

在我看来,validates 是一种将名为 :name 的符号作为参数的方法。但是,什么是 presence?这也是一种方法吗?但如果是,: 紧跟在 presence 之后有什么意义。我知道 true 的值是为 presence 设置的,这是一种验证,需要存在(换句话说)。但我不太清楚语法。

presence: true 也可能只是一个散列,其中 :presence(符号)是键,true 是值(value)。

案例 2 -

class Person < ApplicationRecord
validates :terms_of_service, acceptance: true, message: 'must be abided'
end

同样,validates 是将符号 :terms_of_service 作为参数的方法。但是剩下的呢?它是具有 2 个键值对的哈希,有点像 {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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com