2011-11-23 65 views
2

有人可以帮助我在我的情况下插入属性总是具有相同的值?插入的情况下额外的属性变量

实际:

#<Test surname: "example", givename: "test"> 

目标:

#<Test surname: "example", givename: "test", newvalue: "text"> 

如何做我必须要改变这个代码?

@users.each do |user| 
    user 
end 

或者我可以使用类似:attr_accessor的东西来执行此操作吗?

回答

0

您需要在模型中添加一个新列。为此,您可以使用迁移。首先创建这样一个迁移:

rails g migration addNewValueToTests 

这时你会发现在db/migrations/迁移文件中有你添加一个add_columnself.up方法是这样的:

def self.up 
    add_column :table_name, :column_name, :datatype #datatype like integer, sting, text,.... 
end 

,那么你与rake db:migrate数据库迁移命令和column + setter/getter方法将被添加到模型中!

//如果你只是想要一个别名,你可以在模型中像这样使用alias_attribute

alias_attribute :new_name, :current_name 
1

如果你真的需要同值类的所有实例,你可以做以下操作:

class Some 
    def initialize 
    @value = "Some value" 
    end 

    def newvalue 
    @value 
    end 
end 

这会给newvalue与一些或者无论你怎么称呼它类的所有实例“一些价值”的文字。希望它会有所帮助。