rails模型属性没有db中的相应列

时间:2008-12-30 03:46:19

标签: ruby-on-rails ruby activerecord models

我有一些不需要任何持久性的rails模型,但是我想rails认为模型实际上有x,y,z属性所以当在控制器中调用类似to_json的方法时我会免费获得它们。

例如,

class ModelWithoutTableColumns << ActiveRecord::Base

def x
   return "Custom stuff here"
end

表格“ModelWithoutTable”的数据库中没有列x(对于有点混乱的名称感到抱歉!)

任何人都知道如何解决这个问题?

4 个答案:

答案 0 :(得分:2)

只是不要从ActiveRecord :: Base继承

编辑:您是否尝试过将选项传递给to_json,例如:方法也许?见here

答案 1 :(得分:2)

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

答案 2 :(得分:1)

这不起作用 - ActiveRecord :: Base定义了to_json,但需要一个表。

你应该看看ActiveRecord :: BaseWithoutTable插件。 Here's how to use it,这是updated version for Rails 2

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

答案 3 :(得分:1)

您可能还想查看acts_without_database,有关它的当前详细信息为here,但该网站目前已关闭。 Here's the posting on RubyFlow,它是从今天开始的。