抱歉标题不好,我不知道该怎么称呼这个问题。
我有一个简单的类,它基本上只包装一个数组并为它提供一些自定义访问方法。基本上它存储的是一个双重数组,每个都有一个属性类型,它是uid。
我的想法是,因为这是一个如此简单的用法,我可以摆脱只是构建这个类并将其保存在内存中而不是生成模型并承受ActiveRecord的开销(可能不是很多,我是不确定)。
我担心我会过度思考,我应该把它放在数据库中而忘记它?
class PropertyType
extend Enumerable
TYPES = [
['Site', 'Site'],
['New Home', 'NewHome'],
['Terraced House', 'Terraced'],
['Detached House', 'Detached'],
['Bungalow', 'Bungalow'],
['Townhouse', 'Townhouse'],
['End of Terrace House', 'EoTHouse'],
['Semi-Detached House', 'Semi-D'],
['New Development', 'NewDev'],
['Apartment', 'Apartment'],
['Duplex', 'Duplex'],
['House For Sale', 'House']
].freeze
def self.each
TYPES.each{|type| yield(type[0], type[1]) }
end
def self.convert_to_name(uid_to_lookup)
return if uid_to_lookup.blank?
TYPES.each{|type| return type[0] if type[1] == uid_to_lookup }
end
def self.convert_to_uid(name_to_lookup)
return if name_to_lookup.blank?
TYPES.each{|type| return type[1] if type[0] == name_to_lookup }
end
def self.each_uid
TYPES.each{|type| yield(type[1]) }
end
def self.each_name
TYPES.each{|type| yield(type[0]) }
end
def self.uids
TYPES.collect{|type| type[1]}
end
def self.names
TYPES.collect{|type| type[0]}
end
end
答案 0 :(得分:1)
我认为你的课很好,但我个人仍然把它放在数据库中,这样我就可以轻松选择为属性类型构建管理界面,让其他人随着时间的推移管理对它们的修改。