在select_tag中提示

时间:2011-01-12 12:15:10

标签: ruby-on-rails ruby-on-rails-3

在我的用户注册申请中,我有一个国家选择器..

<%= select(:user, :country, options_for_select(@COUNTRIES)) %>

我想添加一个提示作为第一个默认值(类似“--- select country ---”)。我应该在哪里以及如何选择此选项?

5 个答案:

答案 0 :(得分:32)

使用FormHelper :prompt

select(:user, :country, options_for_select(@COUNTRIES), {:prompt => "--select county--"})

http://apidock.com/rails/ActionView/Helpers/FormOptionsHelper

答案 1 :(得分:4)

您也可以像这样提供自定义提示值

select(:user, :country, options_for_select(@COUNTRIES), :prompt=>"select User name")

答案 2 :(得分:2)

很简单:

select(:user, :country, options_for_select(@COUNTRIES), :prompt=>true)

对于提示“请选择”,或者这是您的自定义文字:

select(:user, :country, options_for_select(@COUNTRIES), :prompt=>"Select country")

另请注意@COUNTRIES错误,实例变量应为小写 - @countries,只有COUNTRIES

答案 3 :(得分:0)

如果有人提到这一点,请尝试编写prompt外的options_for_select。

而不是

select(:user, :country, options_for_select(@COUNTRIES), :prompt=>true)

试,

select(:user, :country, options_for_select(@COUNTRIES)),{:prompt=>"Your message here"}

也适用于select_tag。 另外,我同意@gunn的命名惯例。

答案 4 :(得分:0)

collection_select(:product,
  :category_id,
  Category.all,    
  :id,    
  :title,    
  {:prompt => true}
)

collection_select(:product,    
  :category_id,    
  Category.all,    
  :id,    
  :title,    
  {:include_blank => 'Please Select'}
)

这两个导致相同的html,但第一个不会包含&#39;请选择&#39;返回以编辑以前创建的产品

时的选项