两个表作为Rails中的一个模型

是否可以在rails中设置依赖于两个表的连接的模型? 这意味着,为了找到/更新/销毁模型记录,需要在连接中链接在一起的两个数据库表中的两个记录。 该模型将只是两个表的所有列包装在一起,然后可以用于表单等。 这样,当模型被创建/更新时,它只是一个应用于模型的表单变量哈希?

在Rails 2或3中这可能吗?

据我所知,不可能完全按照你在Rails中所要求的那样做,但你可以使用回调和has_one关联有效地完成第二个模型所要完成的任务,例如:

class Widget < ActiveRecord::Base has_one :thingy before_save :save_thingy_object def save_thingy_object self.thingy = Thingy.new({ :attr1 => 'some', :attr2 => 'thing' }) end end class Thingy < ActiveRecord::Base belongs_to :widget end 

目前,多表inheritance在Ruby on Rails中没有开箱即用的解决方案。 虽然我建议尝试做与上述模型类似的关系,然后基本上滥用代理或手动代理来伪造关系属性以显示为模型的真实属性。

在MySQL中,您可以尝试使用视图来连接两个表。 但是我不确定如果需要更新记录以及Rails如何管理它会发生什么。

http://dev.mysql.com/doc/refman/5.1/en/create-view.html