2012-12-17 46 views
3

在我用自己創建的笨拙方法開始亂拋我的代碼之前,我想知道是否存在一個現有的Ruby/Rails方法:單個Ruby/Rails方法來檢查一個對象是否存在並且有一個ID

如果@foo存在,@foo有一個ID
  • 真(如你在foo的#秀)
  • 返回FALSE如果@foo存在,但目前還沒有一個ID(如你在FOO #new)
  • 如果@foo不存在,則返回false(例如,您在bar#索引中)

我試圖搜索API文檔,但我使用的術語是非常普遍的(ID,保存,存在等),至今我還沒有發現任何東西。

回答

4

您可以使用.try

@foo.try(:id) 

將返回ID或零。

如果你想嚴格真或假,

[email protected](:id) 
+0

對於第二種情況「嘗試法」是冗餘的,足以與[email protected] – geoom

0

對於第2,使用[email protected]_record? new_record?方法返回true/false如果模型被保存到數據庫並且有或沒有。

對於第三,讀此:defined?

相關問題