这可能是一件非常简单的事情,但却找不到解决方案.

我有一个ActiveRecord对象,希望得到如下属性:

attribute_name = "name"
user = User.find(1)
user.get_attribute_by_name(attribute_name) => "John"

谢谢

推荐答案

所有这些都应该有效:

user[attribute_name]
user.read_attribute(attribute_name)
user.send(attribute_name)

就我个人而言,在这种情况下我不会使用send.如果可用,请 Select public_send发送

Ruby-on-rails相关问答推荐

Data-turbo-stream=&FALSE&QOOT;不适用于带有方法POST的表单

将参数传递给视图中的嵌入操作时遇到问题

是否可以使用 Turbo 帧更新 Rails 表单输入字段值?

一对多关联 counter_cache 在 Rails 中无法正确重新加载

计算总价(商品数量*商品价格)

为什么 Rails 执行器不能识别内核的改进?

向现有控制器添加操作(Ruby on Rails)

如何在 Ruby 字符串中返回最后一个斜杠(/)之后的所有内容

如何让 Rspec 运行嵌套在文件夹下的所有测试?

Rails 3 中的动态错误页面

如何在生产中部署 resque worker?

Ruby 元素是否存在于数组中

指定要从 before_filter 中排除的控制器

在 ID 存在时获取表的未知主键

rails 单数资源还是复数?

用户注册时设计确认令牌无效

ruby/ruby on rails 内存泄漏检测

Mongoid OR 查询语法

# 轨道中的 TODO

Rails - 邮件,将正文作为纯文本获取