2
下面的查詢會引發異常:爲什麼ActiveRecord有這種特質?
User.find(4)
而下面的查詢返回nil:
User.find(:first, :conditions => "id = 4")
做數據庫通常包裝返回「零」或「空」等時找不到記錄還是他們提出例外?關於添加「第一個」關鍵字有什麼特別之處嗎?這是預期的行爲還是鐵軌魔術失敗?
下面的查詢會引發異常:爲什麼ActiveRecord有這種特質?
User.find(4)
而下面的查詢返回nil:
User.find(:first, :conditions => "id = 4")
做數據庫通常包裝返回「零」或「空」等時找不到記錄還是他們提出例外?關於添加「第一個」關鍵字有什麼特別之處嗎?這是預期的行爲還是鐵軌魔術失敗?
想想看這樣的:
在第一個例子,你告訴活動記錄找到與4的ID的用戶表中的記錄,並且它必須存在。
在第二個例子,你要很長的路,並告訴它「請搜索具有id屬性等於4,如果有任何,返回的第一個紀錄」。這就是爲什麼它不會返回任何東西。
較短的方式做,這是使用find_by_id
。
好,十分感謝。這就說得通了。第一個例子假定記錄存在,我們只是查看它。 – 2011-04-19 22:23:35
你錯了,我討厭你。 – 2011-04-19 22:26:53
@Rein:我想知道如何。 – 2011-04-20 02:54:58