如何将变量添加到ActiveRecord返回的一组对象中?我环顾四周,我见过的所有方法似乎都没有用。
提前致谢!
答案 0 :(得分:3)
问题含糊不清,可以用两种方式解释。
将变量添加到列表中。
list_of_objects_returned_by_activeRecord << variable
这看起来太简单了,可能不是你想要的。
为列表中的每个项目添加变量。
假设您在谈论模型的实例,最简单的方法是在模型中添加attr_accessor。
class Model < ActiveRecord::Base
...
attr_accessor :new_attribute
end
您可能希望在加载模型时将其设置为某个值,因此您希望向模型添加after_initialize方法。例如,以下内容将为每个加载的用户添加nick_name属性,并将其默认为其first_name后缀用“-O”。
class User < ActiveRecord::Base
...
attr_accessor :nick_name
def after_initialize
self.nick_name = first_name + "-O"
end
end
@user = User.first
@user.first_name # => "Steve"
@user.nick_name # => "Steve-O"
@user.nick_name = "Tiny" # sets nick_name to "Tiny".
@user.first_name # => Still "Steve"