0

Railsプロジェクトには、CRUD操作で管理する必要のあるデータのさまざまなリストがあり、各リストはモデルまたはそれを維持するための足場全体に値するものではありません。これをRailsで処理するための最良の方法は何ですか?

現在、name: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

非常に一般的な問題だと思います。そのため、これらのリストを処理するためのより良い方法があるかどうかを尋ねます。

4

1 に答える 1

0

それをサポートするための足場のないモデルを持つことは悪くありません。私はしばしば、モデルによって作成および管理されるカテゴリやタグのようなモデルでこれを行います。したがって、単純なモデルの足場全体を構築することにプレッシャーを感じないでください。

データをデータベースに永続化する必要がない場合は、いつでも ActiveModel を使用できます。または、永続化する必要があり、その上にピギーバックする別のモデルを見つけることができる場合は、シリアライゼーションを調べてください。ルーズ データを保存する良い方法です。

于 2011-05-24T05:39:00.453 に答える