如何在 Rails 3.2 的 select 字段中的多个位置包含提示文本

How to include prompt text in multiple places in select field with Rails 3.2

有没有办法在我的 select 字段中插入提示用户的文本?即我的 select 下拉菜单可能看起来像

Select 你的联盟

美国橄榄球联盟

NHL

NBA

MLB

备用联赛

英超联赛

西甲

俄语 PL

这在 Rails 3.2 中可行吗?我有这段代码可以拉出我的主要选择 + 次要选择...我想在次要选择之前得到提示。

f.select("league_id", @leagues.collect {|league| [ league.name, league.id ] } + [nil] + @worldwide_leagues.collect {|league| [ league.name, league.id ] })  

使用:prompt => true:

f.select("league_id", @leagues.collect {|league| [ league.name, league.id ] } + [nil] + @worldwide_leagues.collect {|league| [ league.name, league.id ] }, :prompt => true)

如果您想要自定义文本,也可以这样使用 :prompt => 'please take an option'

更进一步,如果您想确保您的用户会选择一个,请在您的模型上添加存在验证。

编辑:

根据您的评论,我认为您正在寻找的是分组选项。试试这个:

grouped_options = {'Leagues' => @leagues.collect {|league| [ league.name, league.id ] }, 'Alternate Leagues' => @worldwide_leagues.collect {|league| [ league.name, league.id ] } }

f.select(:league_id, grouped_options_for_select(grouped_options), :prompt => 'Select your league' )