Rails 在每个字段下方显示表单错误

2024-04-06

我有以下表格

<%= form_for(@user) do |f| %>
  <% if @user.errors.any? %>
    <div id="error_explanation">
      <h2><%= pluralize(@user.errors.count, "error") %> prohibited this user from being saved:</h2>

      <ul>
      <% @user.errors.full_messages.each do |message| %>
        <li><%= message %></li>
      <% end %>
      </ul>
    </div>
  <% end %>

  <%= @user.errors.messages[:name] %>

  <div class="field">
    <%= f.label :name %><br>
    <%= f.text_field :name %>
  </div>
  <div class="field">
    <%= f.label :email %><br>
    <%= f.text_field :email %>
  </div>
  <div class="field">
    <%= f.label :password %><br>
    <%= f.password_field :password %>
  </div>
  <div class="field">
    <%= f.label :phone %><br>
    <%= f.text_field :phone %>
  </div>
  <div class="actions">
    <%= f.submit %>
  </div>
<% end %>

我想显示其下方每个字段的表单错误,而不是顶部的所有字段。经历过导轨 http://guides.rubyonrails.org/active_record_validations.html但不知道该怎么做。


您可以编写一个助手来返回任何对象的任何字段的错误消息

In /app/helpers/application_helper.rb:

def show_errors(object, field_name)
  if object.errors.any?
    if !object.errors.messages[field_name].blank?
      object.errors.messages[field_name].join(", ")
    end
  end
end 

在视图文件中:

<div class="field">
  <%= f.label :name %><br>
  <%= f.text_field :name %>
  <p class='error'><%= show_errors(@user, :name) %></p>
</div>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Rails 在每个字段下方显示表单错误 的相关文章

随机推荐

  • 播放从 url 检索到的声音内容?

    我正在从以下位置检索声音 http translate google com translate tts http translate google com translate tts 并将其写入 WAV 文件 当我双击该文件时 声音播放正
  • 如何删除 Qt 中 QDoubleSpinBox 的 setfill('0') 特征?

    看起来 Qt 默认情况下将输入数字的精度设置为小数点后两位 如果小数 2 并且用户输入数字 例如 4 则会向用户显示 4 00 它是否可以只显示 4 但可以选择让用户将其编辑到小数点后两位并相应地显示更新的值 我编写的第一个示例代码旨在 接
  • Pygame 中的关卡设计

    嘿 我正在尝试使用 Python 的 Pygame 库设计我的第一个游戏 我想知道关卡设计的最佳实践是什么 我很想听听你们认为用于管理级别的良好的面向对象设计模式 另外 我对 Python 还很陌生 谢谢 对于这种类型的游戏 您的地图以图块
  • C# 32feet.Net:在单独的线程中处理两个蓝牙连接,给出 SocketException

    我正在编写一个 C 控制台应用程序 使用32feet Net该库创建两个线程来搜索并连接到不同的蓝牙设备 然后打开 TCP 套接字 以便可以通过网络连接将数据传递到设备 我知道这种情况听起来很奇怪 但一位资深同事要求我这样做 我的代码似乎在
  • System.Version 未在 F# 中实现 System.IComparable

    我想对一个序列进行排序VersionF 中的对象 let maxVersion versions gt Seq max fun version gt version 编译器产生以下错误消息 类型 seq gt a 不支持 比较 约束 例如
  • python 变量在赋值前引用 int 与数组

    当我使用 func1 编译此代码片段时 出现有关在赋值之前引用输出的错误 这对我来说似乎是合理的 def func1 output 1 output 0 func1 print output 但是当我用 func2 编译这个片段时 我没有收
  • 为什么这个无限 for 循环在一段时间后终止? [复制]

    这个问题在这里已经有答案了 我正在无限奔跑for环形 为什么是这样for一段时间后循环终止 for int i 10 i gt 0 i 但如果我在这里打印一些东西for循环然后它不会终止 为什么这样 The int 环绕当达到 2 147
  • 由于 Crosswalk,构建 Ionic 应用程序失败

    突然 我开始收到此错误 C Users andrey shedko Documents Visual Studio 2015 Projects BBN Mobile BBN Mobile gt ionic run android Runni
  • jquery 迭代子元素

    我有一个div与身份证ring preview 它有一个未指定的数量img元素与类stone preview在里面 我想迭代这些子图像并调用 this rotate ring stones i stone rotation Where th
  • 当我想模拟数据并测试 UI 片段时,doNothing() 不起作用

    我要去test fragment with Espresso那我想mock viewmodels和成员 In my viewModel我有一个void function像这样 fun getLoginConfig viewModelScop
  • 为什么我的 Azure 站点不断出现故障?

    我正在测试 Microsoft 的 Azure 云平台 并托管两个要求非常低的网站 一种是简单的单一形式 MVC 网站 它只接受用户的一些输入 执行一些计算 然后输出结果 第二个类似 但它对 Azure SQL Server 实例执行简单的
  • 如何将 ECDSA DER 编码的签名数据转换为 Microsoft CNG 支持的格式?

    我正在准备一个微型驱动程序来使用智能卡执行登录NCryptSignHash微软CNG的功能 当我使用智能卡中的 SECP521R1 EC 密钥执行签名时 它会生成长度为 139 的签名数据作为 ECC 签名数据格式 ECDSASignatu
  • 如何清除winform上的所有表单控件?

    我想清除所有控件 特别是文本框和组合框 我正在使用以下控件来清除所有字段 private void ResetFields foreach Control ctrl in this Controls if ctrl is TextBox T
  • 包含 Tomcat 7(当 servlet 项目时)不会在 45 秒内启动...并且增加超时并不能解决问题

    当尝试运行 Web 应用程序 带有 servlet 时 Tomcat 7 未启动 当我只有一个 html 页面时 服务器运行良好 但是当我尝试添加 servlet 并将其添加到 tomcat 时 然后服务器不启动启动并给出错误 Tomcat
  • c 函数返回两种可能类型之一

    我目前使用三个不同的函数来返回一个数值 一个返回一个double 另外两个返回一个long int main void lots of code dRate funcGetInterestRate lMonths funcGetTerm l
  • Delphi:在运行时释放动态控件

    有没有一种释放 Delphi 控件的故障安全方法 我有一个 TStringGrid 后代 我在其中 嵌入 一个自定义控件作为就地编辑器 当用户通过 Tab 键或箭头键在网格单元格内导航时 如果单元格可编辑 我需要创建一个动态控件 我已经挂钩
  • 如何绑定具体类?

    我有这门课 public class House private final Door door private final Window window private final Roof roof Inject public House
  • 查看 kubernetes 中崩溃的 pod 的日志文件

    知道如何在 kubernetes 中查看崩溃的 pod 的日志文件吗 启动replicationController 后 我的 pod 将其状态列为 CrashLoopBackOff 我搜索可用的文档但找不到任何文档 假设你的 Pod仍然存
  • 如何在 WPF RichTextBox 中底部对齐文本

    如何在 RichTextBox 中底部对齐文本 貌似控件不直接支持 所以我正在寻找模仿它的方法 理想情况下 我会将控件的边界固定 并将文本结尾与底部对齐 文本来自 TextBoxBase 的默认控件模板内名为 PART ContentHos
  • Rails 在每个字段下方显示表单错误

    我有以下表格 div h2 prohibited this user from being saved h2 ul li li ul div