У своєму проекті рейки я маю різний список данихщо мені доводиться керувати операціями CRUD, і кожен список не заслуговує на модель чи цілий ешафот для його основної роботи, який найкращий спосіб впоратися з цим на рейках?
Тепер я використовую модель списку з ім'ям: рядок вмісту: текст, щоб зберегти кожен список як запис списку, і провести певний розбір, коли мені потрібен певний список у моєму додатку. Ось моя фактична модель списку:
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 для відповіді № 1Непогано мати модель без лісівщоб його підтримати. Я часто роблю це з категоріями або тегами, як моделі, які часто створюються та керуються моделями, на які вони діють. Тож не відчувайте тиску, щоб створити цілі ліси для простої моделі.
Якщо вам не потрібно зберігати дані вБаза даних, тоді ви завжди можете використовувати ActiveModel, або якщо вам потрібно наполегливо зберігати і знаходити іншу модель, щоб повернути назад на поверхню, вивчити серіалізацію, це хороший спосіб зберігати вільні дані