我想要无桌面的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
答案 0 :(得分:0)
您正在以非标准方式使用某些字词。当Rails社区(以及我所知道的大多数技术社区)谈到“持久性”时,他们的意思是“将数据保存在某处持久”。这至少意味着“将数据保存在应用程序内存之外的其他位置”,这通常意味着“以应用程序崩溃(例如磁盘)的方式保存数据”。对于ActiveRecord,持久性意味着非常特殊的东西 - 存储到SQL数据库。
因此,您的示例成功获得了“无表格”模型。如果您希望使用ActiveRecord进行持久化,请使用普通(表格支持)模型。我意识到这可能不是你正在寻找的答案,但这是你需要听到的。