4
我正在使用ActiveModel,因爲我連接到第三方API而不是數據庫。我編寫了自己的初始化程序,以便可以傳入散列並將其轉換爲模型中的屬性 - 以支持應用程序中的某些表單。ActiveModel等同於ActiveRecord has_attribute?
attr_accessor :Id, :FirstName, :LastName,...
def initialize(attributes = {})
attributes.each do |name, value|
send("#{name}=", value)
end
end
的問題是,我想用同樣的模式來處理來自API的數據檢索,但這我真的不關心其他數據的加載。因此,我希望在遍歷API返回的哈希時檢查它,並檢查屬性是否存在於我的模型中,如果不存在,則忽略它。這應該允許我爲表單帖子和API返回的數據提供一致的模型。例如:
def initialize(attributes = {})
attributes.each do |name, value|
if self.has_attribute?(name)
send("#{name}=", value)
end
end
end
我已經瀏覽了ActiveModel API文檔,但似乎沒有相應的內容。這讓我覺得我應該以不同的方式做這件事。
這是正確的(Rails)方式嗎?當數據來自不同來源時,如何確保我具有一致的模型屬性?
這太棒了,作品一種享受。謝謝你的幫助 :) – GrahamJRoy 2011-06-06 13:06:13