在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)