По сути, я хочу создать предмет, в данном случае кольцо. У меня есть разные ВИДЫ колец:
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, в котором указано, является ли кольцо серебряным, а другие атрибуты - бла-бла-бла?
Заранее спасибо. Учимся медленно, но верно.
1 ответ
Чтобы получить случайную запись из массива 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)
Похожие вопросы
Связанные вопросы
Новые вопросы
ruby-on-rails
Ruby on Rails - это полнофункциональная платформа веб-приложений с открытым исходным кодом, написанная на Ruby. Он следует популярной модели фреймворка MVC и известен своим подходом «соглашение поверх конфигурации» при разработке приложений.