2015-10-23 3 views
1

Я хочу добавить виртуальный атрибут к объекту activerecord. Просто определить геттер/сеттер, но я хочу, чтобы мой атрибут появлялся в атрибутах хэш (и attribute_names и т. Д.). Поскольку это рельсы 4, я не могу использовать attr_accessible.Как добавить виртуальный атрибут к атрибутам Hash in Rails 4

Что еще нужно добавить к этому коду, чтобы я мог ссылаться на 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

При каком контексте вы хотите «атрибут появляться»? Атрибуты 'attr_accessor' могут использоваться с' form_for' и массово назначены в '.update()'. –

+0

Обе назначенные массы и в ответ на .трибуты –

+0

Просто установите 'attr_accessor: authors' –

ответ

Смежные вопросы