我现在使用的是Rails
和Mongoid
。 假设我有以下型号:如何在带别名的模型类中包含模块?
class User
include Name
end
而且一个Name
模块:
module Name
included do
field :name, type: String
#other methods here...
end
end
问题
现在我想User
有两个字段:name
和nickname
,都通过使用Name
模块。我应该怎么做?谢谢。
编辑
要carify,name
和nickname
共享一些方法,但绰号也有一些特殊的方法本身。 例如,既name
和nickname
可以执行以下操作:
def greeting(name)
p "hello #{name}!"
end
但是,只有nickname
可以做到以下几点:
def friendly_greeting(name)
p "hello #{name}! You can call me #{nickname}"
end
我首先想到的是创建2个模块,Name
和Nickname
,让Nickname
是Name
的一个子类。但他们都是模块,所以我不知道这是否有效。
将'field:nickname,type:String'添加到'Name'。你不明白的是什么? – max
你好@max,问题是不是所有的模型都需要'昵称'字段。 说'Car'类,它可以包含'Name'模块,但'nickname'字段不适合这种情况。 'name'和'nickname'字段也有类似的地方,但它们也有不同的实现。请检查我编辑的问题。 –
你不能像在Python中那样用Ruby导入模块的一部分。相反,你需要使用不同的模块和组合。 – max