gpt4 book ai didi

ruby-on-rails - Rails,activerecord : self[:attribute] vs self. 属性

转载 作者:数据小太阳 更新时间:2023-10-29 06:43:50 24 4
gpt4 key购买 nike

在 Rails 中访问事件记录列/属性时,使用 self[:attribute] 与 self.attribute 有什么区别?这会影响 getter 和 setter 吗?

最佳答案

它们都只是获取属性的方法 - 它们都只是 getter。 self.attribtue 是一个更“传统”的 getter,而 self[:attribute] 基本上只是 [] 方法。在使用两者之间切换不会产生任何影响。

我建议只使用 self.attribute 方法,因为它在语法上更好。但是,当其他内容覆盖 self.attribute 方法时,使用 self[:attribute] 会派上用场。

例如,假设您有一个带有 name 数据库列的 User 模型,所以您会得到 user.name。但是假设您安装了一个 gem,它为您的每个模型添加了一个 #name 方法。为避免复杂化,一种选择是使用 user[:name] 直接访问它,而无需通过受损方法。

关于ruby-on-rails - Rails,activerecord : self[:attribute] vs self. 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25330836/

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