我有一個接受參數的方法,該參數可以是數組/類似對象或哈希。該方法的要點是一樣的東西: 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