8

有一个型号

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

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

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

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

谢谢您的帮助!

4

2 回答 2

13

这是这里解释的属性设置器快捷方式。它几乎等同于:

@item.attributes[:visited] = true
于 2012-09-20T20:11:13.777 回答
2

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

于 2012-09-20T20:20:50.200 回答