Как добавить виртуальный атрибут к хэшу атрибутов в Rails 4

Я хочу добавить виртуальный атрибут к объекту activerecord. Определить метод получения / установки очень просто, но я хочу, чтобы мой атрибут отображался в хэше атрибутов (и атрибутов_имя и т. Д.). Так как это рельсы 4, я не могу использовать attr_accessible.

Что еще мне нужно добавить к этому коду, чтобы я мог вызвать reference.attributes и показать там значение авторов?

class Reference < ActiveRecord::Base

  def authors
    self.author_names.to_a.join(' and ')
  end

  def authors=(val)
    self.author_names.destroy
    val.strip.split(/(?:[ ]and[ ])|\;/).each {|entry|
     self.author_names << AuthorName.new(name: entry)
    }
  end
end

1 ответ

def attributes
  super.merge({'authors' => authors})
end
Другие вопросы по тегам