[英]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.