gpt4 book ai didi

ruby-on-rails - 通过 Ruby 中的散列使实例变量可访问

转载 作者:太空宇宙 更新时间:2023-11-03 18:12:54 24 4
gpt4 key购买 nike

在 Rails 中,ActiveRecord 对象、属性可以通过方法和 Hash 访问。示例:

user = User.first  # Assuming User to be inheriting from ActiveRecord::Base
user.name # Accessing attribute 'name' via method
user[:name] # Attribute 'name' is accessible via hash as well

对于不是从 ActiveRecord::Base 继承的类,如何使实例变量可以通过散列访问?

最佳答案

不是“通过Hash”,而是“数组访问”操作符。

要实现它,你需要定义方法:

def [](*keys)
# Define here
end

def []=(*keys, value)
# Define here
end

当然,如果您不想使用多个键来访问一个元素,您可以只使用 key 而不是 *keys,这样您没有一组键(即使只给出一个键),而只有一个键。

许多其他类实现了它,即 Struct,因此您可以自由选择现有实现或推出自己的实现。

让实例变量受到这些方法的影响意味着使用instance_variable_get/instance_variable_set来实现它们。没什么特别的。

关于ruby-on-rails - 通过 Ruby 中的散列使实例变量可访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30977315/

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