在Rails中,如何根据第一个属性自动分配项目的所有属性

基本上,我想生成一个项目,在这种情况下,一个环。 我有不同类型的戒指:

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等。

例如,如果一个环出现为银,我可以在模型中声明某种if语句,表明该环是否为银而其他属性是bla bla bla?

提前致谢。 学习缓慢但肯定。

要从DISPLAY_NAMES数组中获取随机条目,请执行此操作

 @ring.display_name = DISPLAY_NAMES.sample 

查看http://www.ruby-doc.org/core-1.9.3/Array.html#method-i-sample

对于第二部分,如果其余值是静态的并且不会改变,那么我只会在seed.rb中播种它们

使用每个[ 'Silver', 'Gold', 'Diamond' ]所有值填充数据库所以,每个名称在db中将有3条记录。

在那之后,你可以做到

 @ring = Ring.find_by_display_name(DISPLAY_NAMES.sample)