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.rolland@ring.bonus等。

例如,如果一个戒指是银的,我可以在模型中声明某种 if 语句来说明戒指是否是银,而其他属性是 bla bla bla?

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

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

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

用每个名称的所有值填充数据库[ 'Silver', 'Gold', 'Diamond' ] 因此,数据库中每个名称都有 3 条记录。

之后,你可以做

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