0
我在我的項目之一加載ActiveModel使用,我想請問什麼是明年的情況定義動態方法的最佳途徑在加載ActiveModel實例方法dymamic對象
加載ActiveModel基類只有1訪問屬性稱爲屬性。
def initialize(attributes = {})
set_default_attributes!
@attributes.merge!(attributes.symbolize_keys)
@new_record = true
end
def read_attribute_for_validation(key)
@attributes[key]
end
def self.create(attributes={})
obj = self.new(attributes)
obj.save
return obj
end
def save
if self.valid?
puts "saved!"
return true
end
return false
end
def update_attributes(attributes={})
self.attributes.merge!(attributes.symbolize_keys)
self.save
end
def as_json(options={})
hash = Hash.new
hash.merge!(self.attributes)
hash.as_json({:root=>false}.merge!(options || {}))
end
方法應該是這樣的存取,但應使用內部@屬性變量
實施例如果是@attributes
散列像{:param1=>1,:param2=>2}
實例對象應具有下一個方法
param1
param1=
param2
param2=
我試圖使用方法丟失,但如果方法完成「=」我需要解析它並檢查這樣的密鑰的屬性,所以我不喜歡代碼的樣子。
添加方法?這應該是一個正則表達式容易。 – phoet 2012-01-10 19:36:06
我可以做到這一點,但我想使用define_method使它更ruby方式 – Fivell 2012-01-10 21:31:15
我不認爲它是使用define_method「更ruby方式」,但它有什麼問題呢?去做就對了?! – phoet 2012-01-11 07:44:15