我有一个接受参数的方法,该参数可以是数组/类似对象或哈希。该方法的要点是一样的东西: def find(query = {})
if Array === query or Set === query
query = {:_id => {'$in' => query.to_a}}
end
mongo_collection.find(query)
end
所以我一直在寻找到单表继承近来,和发现这个共同的提问/回答: 问题:你如何从阿尔法改变类的对象obj来 Beta版,假设贝塔<阿尔法,在STI? 回答:ruby是一种鸭子型语言,所以你不用铸造。但是,所有你需要做的是将“类型”变量“测试版”并保存对象,而下一次加载阿尔法对象将是类型测试版: obj = Alpha.new
obj.save #now obj is of type Alpha
从Java的背景来看,我对Ruby对其方法参数的完全态度感到有些不安。而在Java中,我可以保证参数x是该方法正常工作所必需的类型,在Ruby中,我无法保证x是一个整数,一个字符串或其他任何事情。 例子:如果我想用Java编写的absolute_value方法,头会像 public static int absoluteValue(int x)
在Ruby中它会是这样的 def self.ab