我如何添加一个虚拟属性的属性哈希在Rails 4



我想添加一个虚拟属性到一个activerecord对象。定义getter/setter很简单,但我希望我的属性出现在属性散列中(以及attribute_names等)。因为这是rails 4,所以我不能使用attr_accessible.

我还需要在这段代码中添加什么才能调用reference。属性,并在那里显示作者的值?

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
def attributes
  super.merge({'authors' => authors})
end

最新更新