gpt4 book ai didi

ruby-on-rails - Rails错误验证显示在字段下方

转载 作者:行者123 更新时间:2023-12-03 08:29:13 24 4
gpt4 key购买 nike

我想在其字段旁边使用Rails的错误消息。例如;

我有一个创建新用户的表格;

<h1>Sign up</h1>

<div class="row">
<div class="col-md-6 col-md-offset-3">
<%= form_for(@user) do |f| %>
<%= render 'shared/error_messages', object: f.object %>

<%= f.label :name %>
<%= f.text_field :name, class: 'form-control' %>

<%= f.label :email %>
<%= f.email_field :email, class: 'form-control' %>

<%= f.label :password %>
<%= f.password_field :password, class: 'form-control' %>

<%= f.label :password_confirmation, "Confirmation" %>
<%= f.password_field :password_confirmation, class: 'form-control' %>

<%= f.submit "Create my account", class: "btn btn-primary" %>

<% end %>
</div>
</div>

我使用 _error_messages.html.erb部分作为;
<% if object.errors.any? %>
<div id="error_explanation">
<div class="alert alert-danger">
The form contains <%= pluralize(object.errors.count, "error") %>.
</div>
<ul>
<% object.errors.full_messages.each do |msg| %>
<li><%= msg %></li>
<% end %>
</ul>
</div>
<% end %>

我知道它只是接收错误消息并将其显示为列表。我认为应该有一种方法可以检查每个字段的哈希中的错误。只是不知道如何。

感谢您的帮助!

最佳答案

您可以创建一个辅助方法,该方法将当前对象和属性名称作为参数,并生成必要的html,以在行内/行后显示错误。喜欢

def errors_for(object, field_name)
if object.errors.any? && object.errors.messages[field_name]
object.errors.messages[field_name].join(', ')
end
end

那么您可以简单地从表单中调用此帮助方法
  <%= f.label :email %>
<%= f.email_field :email, class: 'form-control' %>
<%= errors_for(@user, :email) %>

关于ruby-on-rails - Rails错误验证显示在字段下方,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30514006/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com