5

我有一些不需要任何持久性的 rails 模型,但是我希望 rails 认为该模型实际上具有属性 x、y、z,因此当在控制器中调用诸如 to_json 之类的方法时,我将它们免费包含在内。

例如,

class ModelWithoutTableColumns << ActiveRecord::Base

def x
   return "Custom stuff here"
end

表“ModelWithoutTable”的数据库中没有 x 列(对不起,名称有点混乱!)

有人知道如何解决这个问题吗?

4

4 回答 4

3

只是不要从 ActiveRecord::Base 继承

编辑:您是否尝试过将选项传递给 to_json,例如 :methods?看这里

于 2008-12-30T03:52:59.720 回答
3

听起来你想要 ActiveModel。查看http://yehudakatz.com/2010/01/10/activemodel-make-any-ruby-object-feel-like-activerecord/了解 Yehuda Katz 的精彩演练。特别是根据您的要求称为“序列化”的部分to_json

于 2011-11-07T20:31:20.113 回答
1

那行不通——ActiveRecord::Base 定义了 to_json,但需要一个表。

您应该查看 ActiveRecord::BaseWithoutTable 插件。这是如何使用它,这里是Rails 2 的更新版本

我没有尝试过其中任何一个,所以不能保证。

于 2008-12-30T04:18:02.650 回答
1

您可能还想查看acts_without_database,有关它的当前详细信息在这里,但该站点目前已关闭。这是 RubyFlow 上的帖子,从今天开始。

于 2008-12-30T04:46:59.877 回答