具有少量持久数据的无表ActiveRecord对象?

时间:2013-02-28 13:03:24

标签: ruby-on-rails activerecord ruby-on-rails-3.2 active-attr

我想要无桌面的AR对象。伪代码:

# tablefull AR object
class Item < ActiveRecord::Base
  has_one :color
end

# tableless AR object, but persistant
class Color
  include ActiveAttr::Model
  belongs_to :item
  attribute :color
  Colors = [:yellow, :red, :black]
end

# expect
Color.first => #<Color id:1, color: :yellow>
Item.create(color: Color.first, foo: 'bar')
Item.where(color_id: Color.first)

我在下面看,但这些都是无表情而且不是持久的。 How to create ActiveRecord tableless Model in Rails 3 Ruby on Rails: Fully functional tableless model

1 个答案:

答案 0 :(得分:0)

您正在以非标准方式使用某些字词。当Rails社区(以及我所知道的大多数技术社区)谈到“持久性”时,他们的意思是“将数据保存在某处持久”。这至少意味着“将数据保存在应用程序内存之外的其他位置”,这通常意味着“以应用程序崩溃(例如磁盘)的方式保存数据”。对于ActiveRecord,持久性意味着非常特殊的东西 - 存储到SQL数据库。

因此,您的示例成功获得了“无表格”模型。如果您希望使用ActiveRecord进行持久化,请使用普通(表格支持)模型。我意识到这可能不是你正在寻找的答案,但这是你需要听到的。