动态添加哈希属性到Rails模型实例对象?

时间:2012-09-20 20:05:46

标签: ruby-on-rails ruby ruby-on-rails-3 activerecord ruby-on-rails-3.1

有一个模型

class PlaylistModel < ActiveRecord::Base
    /* code */
end

然后在控制器操作中有像这样的代码

PlaylistController < ActionController::Base
  def a_action
    @item = Playlist.find(10)
    @item[:visited] = true     
  end
end

但是visited(或播放列表表的架构中)没有定义PlaylistModel属性!看起来新属性正在动态添加到对象中。这是发生了什么,所有这些功能定义在哪里/我在哪里可以阅读更多相关信息。

感谢您的帮助!

2 个答案:

答案 0 :(得分:12)

这是解释here的属性设置器快捷方式。它几乎相当于:

@item.attributes[:visited] = true

答案 1 :(得分:2)

我认为您正在寻找的是虚拟属性......可以在模型中定义http://railscasts.com/episodes/16-virtual-attributes