html - Rails 错误消息破坏注册表单

标签 html css ruby-on-rails ruby twitter-bootstrap

我正在学习本教程:http://ruby.railstutorial.org/chapters/sign-up#top我对来自 rails 的错误消息的样式有疑问。

我想完成这个:

http://ruby.railstutorial.org/images/figures/blank_signup_password_digest_bootstrap_4_0.png

但相反,我的表格被打破了,我得到了这个丑陋的表格:

enter image description here

我检查了一个源代码,插入了 nov div 标签,而不是标签和输入:

enter image description here

如何覆盖该行为并完成该表单,如教程中那样仅突出显示?

谢谢。

编辑 1:

我发现问题出在哪里了。我正在使用 Bootstrap 3.1.0 并且扩展在那里不起作用。所以,这是行不通的:

#error_explanation {
  color: #f00;
  ul {
    list-style: none;
    margin: 0 0 18px 0;
  }
}

.field_with_errors {
  @extend .control-group;
  @extend .error;
}

因此,这段代码无法正常工作:

<% if @user.errors.any? %>
  <div id="error_explanation">
    <div class="alert alert-error">
      The form contains <%= pluralize(@user.errors.count, "error") %>.
    </div>
    <ul>
    <% @user.errors.full_messages.each do |msg| %>
      <li>* <%= msg %></li>
    <% end %>
    </ul>
  </div>
<% end %>

我找不到使该扩展工作的方法。就像控制组不存在一样......

编辑 2:

好的,当我将此代码添加到 config/environment.rb 时,表单不会中断,但无法完成输入错误的表单周围的红线:

ActionView::Base.field_error_proc = Proc.new do |html_tag, instance|
  html_tag.html_safe

最佳答案

您为什么使用 Bootstrap 3?教程告诉你使用

gem 'bootstrap-sass', '2.3.2.0'

在你的 gemfile 中。你真的应该这样做,因为本教程为你提供了大量旨在与 Bootstrap 2 一起使用的代码。当然,它与 Bootstrap 3 不兼容。如果你真的想使用 B3,你将不得不改变很多你的观点中很少有类名。在其他更改中执行此操作:

  • div class="alert alert-error" 更改为 div class="alert alert-danger"
  • form-groupform-control 类应用于您的表单字段(参见示例 here)。
  • 在您的 CSS 中:

    .field_with_errors {
      @extend .has-error;
    }
    
  • 然后做提到的所有其他更改here .

关于html - Rails 错误消息破坏注册表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21640841/

相关文章:

javascript - 如何使用 jQuery 在多级菜单中选择没有 child 的 li?

jquery - 在不隐藏 div 的情况下淡入 div 中的文本

ruby-on-rails - :name:Symbol Rails 4. 1.x collection_select 的未定义方法 `merge'

ruby-on-rails - 是否可以在不使用环境变量的情况下将参数发送到 `rake cucumber`?

html - 固定位置在 Chrome 中不起作用

javascript - 如何在 Javascript 中将对象作为参数传递

android - CSS - 布局一团糟

html - 有没有办法在 Rails 中的表单上左对齐?

javascript - 如何使此代码适用于每次点击?

ruby-on-rails - 有没有办法将命名范围组合成一个新的命名范围?