是否存在一些隱藏的Ruby/Rails-只有在存在時才調用方法的魔法?只有存在調用方法
可以說,我想打電話給
resource.phone_number
但我不事先知道,如果資源響應phone_number
。做到這一點的一種方法是
resource.phone_number if resource.respond_to? :phone_number
如果在錯誤的地方使用,這並不是那麼漂亮。我很好奇,如果有什麼東西存在,更符合try
的使用方式(resource.try(:phone_number)
)。
作爲一個極端的例子,我建議在這種情況下覆蓋Object的'method_missing'來返回'nil'。這是調試的恐怖。有些人會認爲它是不好的風格,元和不必要的。 – User
@用戶b,根本不是一個hor 0123。您只需將一個堆棧重新回到無例外的地方:-) – mudasobwa
使用'respond_to'是最好的選擇 – apneadiving