【问题标题】:How can I call a method prior to reading an active record object's attributes? [closed]如何在读取活动记录对象的属性之前调用方法? [关闭]
【发布时间】:2020-11-17 18:04:49
【问题描述】:

对于模型的每个属性,我希望能够在返回所述属性的结果之前调用一个方法。

例如,考虑模型用户:

class User < ActiveRecord::Base

  def some_attribute
    # modify return result
  end
end

User.new.some_attribute # returns modified result

我希望能够为模型具有的每个属性调用此 some_attribute 方法。

【问题讨论】:

  • 很抱歉,我不清楚您的问题。您想调用some_attribute,它应该在每次调用时返回不同的修改属性?在您的示例中,您定义了一个 some_attribute getter 方法,但有几行改变了您调用 some_attribute= setter 方法 - 它们是如何连接的?您能否详细说明并解释您实际尝试实现的目标?你试图解决什么问题?为什么需要在返回实际属性值之前调用方法?
  • 你想为用户获取所有可用的属性(表列)键值吗?

标签: ruby-on-rails ruby activerecord


【解决方案1】:

您可以使用read_attribute 方法执行此操作。 因为你没有给出任何例子来说明你将如何使用它可能是也可能不是正确的方法。

def some_attribute
  data = read_attribute[:some_attribute]
  # Then do something and return what you want
  # return data
end

【讨论】:

  • 很好地呼吁这个答案取决于它的使用方式可能不是正确的方法!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-05-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多