ruby-on-rails - 向 Rails 模型实例对象动态添加哈希属性?

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

有模型

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

然后在 Controller Action 中有这样的代码

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

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

感谢您的帮助!

最佳答案

这是解释的属性 setter 快捷方式 here .它几乎等同于:

@item.attributes[:visited] = true

关于ruby-on-rails - 向 Rails 模型实例对象动态添加哈希属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12520095/

相关文章:

ruby-on-rails - 如何使用 Postgres 在 Rails 5.2 中设置日期的默认值?

ruby-on-rails - Ruby on Rails 3 以及如何制作 Web 服务

ruby-on-rails - 安装 ffmpeg

ruby-on-rails - Rails 应用程序助手不支持中文字符

ruby-on-rails - Rails 序列化关联而不是 has_many 通过

ruby-on-rails - "one, two, and three"是否存在 Rails 助手?

ruby-on-rails - Rails 不保存已更改的属性

ruby - ruby 的 object_id 方法是否引用内存位置?

ruby - 从日期数组中删除星期日,但调整以删除星期日

ruby-on-rails - Rails、gmaps4rails 不适用于 https