我在这里缺少什么?我正在使用Rails 4.0.0,并尝试使用新的Bootstrap 3.0.0rc1.我有一个简单的“食谱盒”应用程序,它有一个食谱模型和一个类别模型,在食谱中提供一个“类别”字段.在食谱#新视图中,我定义了以下字段:
<h1>Create New Recipe</h1> <%= form_for @recipe,html: { class: 'form-horizontal' } do |f| %> <fieldset> <legend>Main Information</legend> <div class="form-group"> <%= f.label :name,"Recipe name",class: "col-lg-2 control-label" %> <div class="col-lg-6"> <%= f.text_field :name,class: "form-control" %> </div> </div> <div class="form-group"> <%= f.label :category_id,class: "col-lg-2 control-label" %> <div class="col-lg-6"> <%= f.collection_select :category,Category.all,:id,:name,class: "form-control",prompt: "Select a category" %> </div> </div> ...
text_field帮助程序呈现一个格式正确的标签,并附有类属性.但是,无论如何构建select或collection_select助手,我似乎都不能让Rails给我一个包含一个类属性的内容.上面的代码给了我这个:
<select id="recipe_category" name="recipe[category]"><option value="">Select a category</option> ...
所以提示出现,但是类attrib没有,所以看起来像html_options哈希的一部分被识别.但是Bootstrap样式不适用.如果我在类周围使用大括号{},不要紧,“form-control”不是.如果我在collection_select参数周围使用括号,这并不重要.发生与选择帮助器以及.
有人建议吗你也看到了吗?
解决方法
尝试使用:
<%= f.collection_select :category,{prompt: "Select a category"},{class: "form-control"} %>
根据rails documentation,先选择然后html选项.请记住,html选项需要在braces:{prompt:“选择一个类别”}或{class:“form-control”}.