テーブルなしの 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
これでロジックが説明されます。