有人可以解释一下这是如何起作用的吗?
问题:
我有一个脚手架并运行迁移:
rails g migration AddRarityToTags rarity:string
对于罕见输入,我需要一个下拉列表,显示可供选择的选项列表。
e.g. Rarity = Free
Common
Rare
Epic
如果我是对的,我需要这样的东西:
select_tag :rarity, options_for_select(@rarity)
我搜索了很多,但没有多大帮助,我更加困惑。
有人能帮助我吗?
答案 0 :(得分:2)
想象一下,将原始选项作为字符串放入标记中:
select_tag :rarity, '<option>Free</option><option>Common</option>...'
如果你传入一个数组,这就是options_for_select
返回的内容:
select_tag :rarity, options_for_select(['Free', 'Common', ...])
要强制执行“哑视图”规则,并让其他人使用该数组,您可以将其移至模型:
class Tag < ActiveRecord::Base
RARITY_LEVELS = %w(Free Common Rare Epic)
end
...
select_tag :rarity, options_for_select(Tag::RARITY_LEVELS)
我和OP都想知道Rails或者任何宝石是否让我们得到任何比这更干的东西;例如,如果Rails允许我们将RARITY_LEVELS
直接附加到rarity
字段...