0

基本的に、アイテム、この場合はリングを生成したいと考えています。私はさまざまな種類のリングを持っています:

class Ring < ActiveRecord::Base

  DISPLAY_NAMES [ 'Silver', 'Gold', 'Diamond' ]

  attr_accessible :description, :display_name, :roll, :bonus, :total, :image, :gold

end

リングの DISPLAY_NAMES をランダム化する方法はありますか?

のようなものだと思い@ring.display_name = rand(Ring::DISPLAY_NAMES)ますか?

これを行うより良い方法はありますか?

@ring.rollそれが見つかったら、やなど、リングの他のすべての属性を設定する方法はあり@ring.bonusます か?

たとえば、リングがシルバーである場合、そのリングがシルバーで、その他の属性が bla bla bla であるかどうかを示す if ステートメントをモデルで宣言できますか?

前もって感謝します。ゆっくりと、しかし確実に学びます。

4

1 に答える 1

0

DISPLAY_NAMES 配列からランダムなエントリを取得するには、次のようにします。

@ring.display_name = DISPLAY_NAMES.sample

http://www.ruby-doc.org/core-1.9.3/Array.html#method-i-sampleを確認してください

2 番目の部分では、残りの値が静的で変更されない場合は、seed.rb にシードするだけです。

それぞれのすべての値をデータベースに入力します[ 'Silver', 'Gold', 'Diamond' ] 。したがって、名前ごとにデータベースに 3 つのレコードが作成されます。

その後、次のことができます

@ring = Ring.find_by_display_name(DISPLAY_NAMES.sample)
于 2012-06-28T19:02:59.293 に答える