使用简单形式的bootstrap:bootstrap包装器不适用

时间:2013-07-14 14:39:26

标签: ruby-on-rails twitter-bootstrap simple-form

我想显示一个带有引导类的表单(参见https://github.com/plataformatec/simple_form#twitter-bootstrap

我使用bootstrap参数安装了简单的表单:

rails generate simple_form:install --bootstrap

以我的形式:

<%= simple_form_for(resource,
                    :as => resource_name,
                    :url => registration_path(resource_name),
                    :html => {:class => 'form-horizontal'}) do |f| %>
    <%= devise_error_messages! %>

    <%= f.label :email %>
    <%= f.email_field :email %>
    ...

生成的HTML如下所示:

<label class="email optional control-label" for="user_email">Email</label>
<input id="user_email" name="user[email]" size="30" type="email" value="">

(没有包装标签)。

为什么不应用包装器标签?


我尝试了什么:

卸载并重新安装gem:

bundle update; bundle install; bundle;
rails d simple_form:install
rails generate simple_form:install --bootstrap

我检查了服务器启动时是否调用了simple_form_bootstrap.rb配置文件;它是。

我试图强制包装器在表单中引导(仍然没有包装器标签):

<%= simple_form_for(resource,
                    :as => resource_name,
                    wrapper: :bootstrap,
                    ...

1 个答案:

答案 0 :(得分:2)

f.labelf.email_field不使用包装器。 f.input确实如此。

替换

<%= f.label :email %>
<%= f.email_field :email %>

<%= f.input :email %>

包装器被应用。