2009-11-21 68 views
-1

如何将变量添加到由ActiveRecord返回的一组对象中?我环顾四周,没有看到任何我见过的方法。将变量添加到AR对象

在此先感谢!

+0

发布一些代码,你的问题很模糊。具体说明你想要完成的事情。 – bensie 2009-11-21 18:47:26

回答

3

问题很模糊,可以用几种方法解释。

  1. 将变量添加到列表中。

    list_of_objects_returned_by_activeRecord << variable 
    

    这似乎太简单了,可能不是你要找的。

  2. 将变量添加到列表中的每个项目。

    假设您在谈论模型的实例,最简单的方法是将attr_accessor添加到模型中。

    class Model < ActiveRecord::Base 
        ... 
        attr_accessor :new_attribute 
    end 
    

    你可能想将其设置为某个值,每当模型被加载,所以你想一个after_initialize方法添加到model.For例如,下面将添加一个NICK_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"