0

我想要无表格的 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)

我在下面看,但这些是无表的,不是持久的。 如何在 Rails 3 中创建 ActiveRecord 无表模型 Rub​​y on Rails:功能齐全的无表模型

4

1 回答 1

0

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

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

于 2013-03-15T13:30:08.723 回答