繁体   English   中英

Rails-编辑错误消息的默认外观

[英]Rails - Editing default appearance of error messages

Rails的新手,我正在做一些简单的练习。 现在,我正在处理错误消息。 我有一些关于这些默认行为的问题

1) 所有错误的属性都带有前缀:为什么所有错误消息都带有用于验证错误的变量前缀? 在这种情况下,它是score 如何从错误消息中删除此属性名称,而仅显示我的错误消息? 有没有简单的方法可以做到这一点?

2) 红色突出显示 :为什么“得分”标签和相应的输入字段以红色突出显示 根据_form.html.erb文件,它们是<div class="field">所以我不知道这个红色轮廓来自何处。 有办法改变吗?

谢谢!

错误信息

欢迎来到Rails! 首先,您正在使用默认脚手架。 如果您使用的是Rails 3.2+,则您的样式将位于/app/assets/stylesheets 您应该在那里有一个名为scaffold.css.scss的文件。 该文件是页面红色的样式。

现在,对于标记,您可以控制这些消息的显示方式。 保存对象但验证失败后,该对象将具有errors对象。

@car = Car.new(params[:car])
@car.save #=> false
@car.errors.messages #=> {:make => "can't be blank", :model => "doesn't make sense"}

如您所见,此错误对象上的messages方法将返回一个哈希,其中键是验证失败的属性,而值是验证中的字符串消息。

这些验证是在您的模型中设置的,可以完全由您自定义。

class Car
    validates :make, presence: true
    validates :model, presence: true, message: "doesn't make sense"
end

因此,在您看来,您可以轻松地执行以下操作

<% if @car.errors.any? %>
   <% @car.errors.messages.each do |field, message| %>
       <!-- your custom html here -->
    <% end %>
<% end %>

因此希望这会有所帮助!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM