W moim projekcie szyn mam inną listę danychże muszę zarządzać operacjami CRUD, a każda lista nie zasługuje na model lub całe rusztowanie, aby go obsługiwać, jaki jest najlepszy sposób radzenia sobie z tym na szynach?
Teraz używam modelu listy o nazwie: treść ciągu: tekst, aby zapisać każdą listę jako rekord listy i przeprowadzić analizę, gdy potrzebuję listy w mojej aplikacji. Oto mój rzeczywisty model listy:
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
Myślę, że jest to bardzo częsty problem, dlatego pytam, czy istnieje lepszy sposób obsługi tych list?
Odpowiedzi:
0 dla odpowiedzi № 1Nie jest źle mieć model bez rusztowańwesprzeć to. Często robię to z modelami kategorii lub tagów, które są często tworzone i zarządzane przez modele, na których działają. Więc nie odczuwaj presji, aby zbudować całe rusztowanie dla prostego modelu.
Jeśli nie musisz utrwalać danych wbazy danych, wtedy zawsze możesz użyć ActiveModel, lub jeśli musisz się uporać i możesz znaleźć inny model, na którym można nałożyć piggy back, zajrzyj do serializacji, to dobry sposób na przechowywanie luźnych danych