Rails表单选择必需

时间:2013-04-21 20:37:29

标签: ruby-on-rails

我想在我的Rails表单中要求<select>

这是我的代码(省略号是为了缩短线路):

<div class="field">
  <p><%= f.label :category, "Category:" %></p>
  <%= f.select :category, ['Analytics','Commerce',..., 'Web'], :prompt => '-- Select One --', :required => true %>
</div>

哪个输出

<div class="field">
  <p><label for="startup_category">Category:</label></p>
  <select id="startup_category" name="startup[category]">
    <option value="">-- Select One --</option>
    <option value="Analytics">Analytics</option>
    <option value="Commerce">Commerce</option>
    <option value="Content Management">Content Management</option>
    <option value="Gaming">Gaming</option>
    <option value="Green">Green</option>
    <option value="Media">Media</option>
    <option value="Social Media">Social Media</option>
    <option value="Technology - Software">Technology - Software</option>
    <option value="Technology - Hardware">Technology - Hardware</option>
    <option value="Web">Web</option></select>
</div>

使用{:required => true}代替:required => true会出现语法错误,{:prompt => '-- Select One --', :required => true}呈现页面,但我的select标记中没有required="true"

如何在我的代码中获得required="true"

3 个答案:

答案 0 :(得分:39)

尝试这个......

f.select :category, ['Analytics','Commerce',..., 'Web'], { :include_blank => '-- Select One --' }, :required => true

答案 1 :(得分:3)

Rails 4

    f.select :category,
      ['Analytics','Commerce',..., 'Web'],
      {
        include_blank: '-- Select One --' ,
        required: true
      }

答案 2 :(得分:1)

我不确定它是否能达到你想要的效果,但我有两个解决方案。你可以使用simpleform gem。

OR

设计风格:

<label class="required">Category</label>

in css:

label.required:after{content:"*"}