我有一個名爲場Rails的孩子通過ID找到返回父類對象
class Field < ActiveRecord::Base
end
父類和一個名爲ProfileField
class ProfileField < Field
def self.base_class ; self ; end
def self.use_base_class; ProfileField; end
self.table_name = "fields"
def field_type
return "profile_field"
end
end
我有一個數據庫表「田」,有一個子類名爲field_type的列。 我在field_type列中使用Field.create和null創建了一個Field對象。 我也使用ProfileField.create創建了一個ProfileField對象並給出了「profile_field」類型。
比方說,Field對象(父類)的ID是10,子對象ProfileFiled ID是11. 當我做ProfileField.find(10)時,我會得到一個ProfileField對象。當我執行Profile.find(10)時,我還會得到一個Profile對象。 因爲ID爲10的對象是Profile對象而不是ProfileField對象,所以當我執行ProfileField.find(10)時,我不應該得到任何東西嗎?
活動記錄會將您的請求/命令到SQL。所以,如果你有Field和ProfileField相同的表,那麼通過id查找應該返回兩個類的結果。也許你應該奉獻一個布爾字段來區分這兩個... –
謝謝。我找到了答案。我需要一個類型列我的字段表,當創建一個新的對象時,它會自動填充對象類型。 – user1404536
同樣的邏輯,不同的動作。我只是一個想法,而不是唯一的辦法。你放下自己的做法很好。保持。 –