40

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

私の質問は次のとおりです。データベース テーブルなしでモデルに色を配置するにはどうすればよいですか?

または、それを行うためのより良いレールの方法はありますか?

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

4

6 に答える 6

66
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

それはあなたに論理を説明します。

于 2013-01-17T22:21:45.713 に答える
9

最も簡単な答えは、ActiveRecord::Baseからサブクラス化しないことです。次に、オブジェクトコードを記述できます。

于 2013-01-17T22:19:56.793 に答える
0

選択リスト(進化しない)が必要な場合ApplicationHelperは、リストを返すメソッドをで定義できます。次に例を示します。

 def my_color_list
   [
     "red",
     "green",
     "blue"
   ]
 end
于 2013-01-17T22:20:16.003 に答える