Techioz Blog

テーブルなしの Rails モデル

概要

たとえば色の選択リストを作成したいのですが、色のテーブルは作成したくありません。どこかで見たことがあるのですが、Googleで検索しても見つかりません。

私の質問は、データベース テーブルを使用せずにモデルに色を配置するにはどうすればよいですか?

それとも、それを行うためのより良い Rails 方法はありますか?

誰かが配列やハッシュをモデルに直接入れているのを見たことがありますが、今はそれを見つけることができませんでした。

解決策

class Model

  include ActiveModel::Validations
  include ActiveModel::Conversion
  extend ActiveModel::Naming

  attr_accessor :whatever

  validates :whatever, :presence => true

  def initialize(attributes = {})
    attributes.each do |name, value|
      send("#{name}=", value)
    end
  end

  def persisted?
    false
  end

end

attr_accessor は属性を作成し、initialize() でオブジェクトを作成して属性を設定します。

永続化されたメソッドは、データベースとのリンクがないことを示します。次のような例を見つけることができます。 http://railscasts.com/episodes/219-active-model? language=en&view=asciicast

これでロジックが説明されます。