在我的rails项目中,我有不同的数据列表,我必须与CRUD操作保持一致,每个列表都不值得使用模型或整个脚手架来维护它,在轨道上处理这个的最佳方法是什么?
现在我正在使用名称为List的模型:string content:text将每个列表保存为列表记录,并在我的应用程序中需要一些列表时进行一些解析。这是我的实际列表模型:
class NoListException < Exception
end
class List < ActiveRecord::Base
validates :name, uniqueness: true
def self.container_types
get_list('container_types').collect do |b|
b.split(',').collect {|c| c.split(':').last }
end.collect {|p| "#{p.last} - #{p.first}" }
end
def self.location_categories
get_id_value_list('location_categories')
end
def self.services_types
get_list('services_types')
end
private
def self.get_id_value_list(name)
get_list(name).collect do |b|
(b.split(',').collect {|c| c.split(':').last }).rotate
end
end
def self.get_list(name)
list = List.find_by_name(name)
raise NoListException if list.nil?
list.content.split(';')
end
end
我认为这是一个非常常见的问题,因为我问是否有更好的方法来处理这些列表?
答案 0 :(得分:0)
拥有一个没有脚手架支撑它的模型也不错。我经常使用类别或标签这样的模型,这些模型通常由他们所采用的模型创建和管理。所以不要感到有压力为一个简单的模型构建一个完整的脚手架。
如果您不需要将数据持久保存到数据库,那么您可以随时使用ActiveModel,或者如果您确实需要持久化并且可以找到另一个模型来重新放置,请查看序列化,这是一个很好的方法存储松散的数据