在实例变量中插入其他属性

时间:2011-11-23 14:09:53

标签: ruby-on-rails activerecord instance-variables

有人可以帮我在我的实例中插入一个总值相同的属性吗?

实际

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

:定位:

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

如何更改此代码?

@users.each do |user|
  user
end

或者我可以使用:attr_accessor

之类的方法实现此功能

2 个答案:

答案 0 :(得分:1)

如果你真的需要为你班级的所有实例提供相同的价值,你可以这样做:

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

  def newvalue
    @value
  end
end

这将为newvalue提供所有类的实例或某些你称之为“Some value”的文本。希望它会有所帮助。

答案 1 :(得分:0)

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

rails g migration addNewValueToTests

然后,您会在db/migrations/中找到迁移文件,并在add_column方法中添加self.up,如下所示:

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

然后使用rake db:migrate命令迁移数据库,并将列+ setter / getter方法添加到模型中!

//如果您只想要一个别名,可以在模型中使用alias_attribute,如下所示:

alias_attribute :new_name, :current_name