gpt4 book ai didi

ruby-on-rails - 通过引用更新属性

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

我想知道是否可以引用对象的属性。

对象 User 有属性 first_name,所以通常如果我们想更新 first name 属性,我们会这样做:

user0 = User.new()
user0.update_attribute(:first_name, "joe")

现在我的问题是我可以通过另一个变量/符号更新 :first_name 属性吗:

user0.update_attribute(:fname_ref, "jack")
user0.first_name #=> has the value jack

我像在 Perl 中一样寻找变量引用,但在 Ruby 中一无所获。

------------ 编辑

我正在学习 lynda ruby​​ on rails 教程,并且正在创建一个模块来调整表中项目的位置。不幸的是,当我第一次开始时,我以不同的方式命名了我的表列pages.page_position, subjects.subject_position, sections.section_position

现在模块 PositionMover 将用于三个模型,所以现在我有一个问题,因为每个模型的属性名称都不同

所以我觉得不用担心,我会为每个模型创建一个指针/引用

:position = :pages_position , :position = :subjects_position , :position = :section_position

因此问题,是否有可能做到这一点。

如果不可能,有什么建议我应该怎么做,这样模块就可以用于三个不同的模型,具有不同的属性名称。

对不起,我是新手。

最佳答案

符号不像变量,它们实际上是一种对象类型,如 String 或 Fixnum,因此您可以拥有一个类型为符号的变量。

我想这就是您要找的:

attribute = :first_name
user0.update_attribute(attribute, "jack")
user0.first_name #=> has the value jack

更新:如果您有一个字符串并且需要转换为一个符号,(我不确定您是否需要这个用于update_attribute)

foo = "string"
foo.to_sym #=> :string

关于ruby-on-rails - 通过引用更新属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10610883/

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