Вставьте дополнительные атрибуты в переменную экземпляра - PullRequest
2 голосов
/ 23 ноября 2011

Может ли кто-нибудь помочь мне вставить в мой экземпляр атрибут с всегда одинаковым значением?

Факт:

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

Цель:

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

Как мне изменить этот код?

@users.each do |user|
  user
end

Или я могу реализовать что-то вроде :attr_accessor?

Ответы [ 2 ]

1 голос
/ 23 ноября 2011

Если вам действительно нужно одинаковое значение для всех экземпляров вашего класса, вы можете сделать следующее:

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

  def newvalue
    @value
  end
end

это даст newvalue с текстом "Some value" для всех экземпляров класса Some или чего-либо ещеВы называете это.Надеюсь, это поможет.

0 голосов
/ 23 ноября 2011

Вам необходимо добавить новый столбец в вашу модель.Для этого вы можете использовать миграцию.Сначала создайте миграцию следующим образом:

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, и методы column + setter / getter будут добавлены в модель!

// Если вы просто хотите использовать псевдоним, вы можете использовать alias_attribute вмодель, как это:

alias_attribute :new_name, :current_name
...