2012-01-28 77 views
0

我創建了一個模型,該模型具有一個字符串作爲唯一標識符。 我創建了一個遷移來爲該字符串添加索引並將其設置爲唯一。 我如何才能獲得通過只是路過它的唯一標識字符串find方法數據庫條目,例如Rails:如何在任意索引上使用find方法

@object = Object.find(params[:unique_id]) 

目前,我得到的是一個ActiveRecord :: RecordNotFound例外...

Couldn't find Object with id=abc

...當我嘗試訪問Object.find('abc')

where方法是沒辦法,因爲這給了我回來的關係。

回答

1

Object.find(:unique_id)在'object_id'列上搜索;如果您想在其他列上搜索,請使用Object.find_by_[column_name]!(:unique_id)。如果找不到記錄,這將引發異常,如同find方法。

+0

這給了我以下 'IRB(主):006:0> Object.find_by_unique_id(:UNIQUE_ID => 'ABC') 引發ArgumentError:未知項:unique_id' 我的遷移是'add_index:對象,:UNIQUE_ID ,unique:true' 當我使用的地方,它的工作 – Isabaellchen 2012-01-28 08:53:25

+0

嘗試'Object.find_by_unique_id!('abc')' – Baldrick 2012-01-28 08:55:30

+0

恩,謝謝一堆。現在它可以工作 – Isabaellchen 2012-01-28 08:58:53

相關問題