我正在進行移植項目。想要將2.x應用程序遷移到3.x.我遇到活動記錄問題。活動記錄類
在Rails 2.X:
arr=StorageUnit.find(:all, :conditions =>"type='Drawer'")
上面的代碼將讓我型抽屜中的所有記錄。
arr.class
=> Array
在Rails 3.X:
這裏上述功能已被棄用。所以我只好用
arr=StorageUnit.where("type='Drawer'")
上面的代碼將讓我型抽屜中的所有記錄。
arr.class
ActiveRecord::Relation
我想這是因爲活動記錄的變化。 我的問題是我有一些基於這個類的代碼。
對於前:
if arr.class== Array
do something
else
do something
end
所以當關閉現在我已經改成了
if arr.class== ActiveRecord::Relation
do something
else
do something
end
只是好奇,想知道是否有任何更好的解決方案或解決任何替代方法。我有很多地方他們使用這些東西。
編輯:
arr=StorageUnit.where("type='Drawer'").all
將提供類作爲數組。我的目標是知道什麼時候沒有後綴的代碼可以爲您提供所需的記錄,而不是最終所有的用途。只是爲了改班嗎?任何人都可以ecxplain?
明確檢查事物類是不是非常習慣ruby –
@FrederickCheung是正確的。如果你需要絕對檢查類,你可以使用'arr.is_a?(Array)' –