2013-01-21 100 views
2

我想为模型创建多继承。模型的多继承

为了做到这一点,我想是这样的:

class User < ActiveRecord::Base, Devise::SessionsController 

什么是正确做到这一点的呢?我认为我的语法不正确。

回答

3

Ruby不支持多重继承。要在模型之间共享功能,您需要使用mixin。查看this article,特别是关于mixin的部分。

+0

谢谢你,所以我应该这样做: 类用户<的ActiveRecord :: Base的 包括制定:: SessionsController –

+2

是的,然后如果你有要包括附加的功能,您可以添加这样一行'在你的用户类中包含MyAdditionalStuff'或'extends MyAdditionalStuff'以添加MyAdditionalStuff模块。请务必阅读'include'和'extend'之间的区别。这里是一个概述 - http://railstips.org/blog/archives/2009/05/15/include-vs-extend-in-ruby/。如果您还不知道实例和类方法之间的差异,请按照第一段FIRST中的链接进行操作。 –

+0

非常感谢! –