对rails很新,我正在做一些简单的练习。现在我正在玩错误信息。我有几个关于这些
的默认行为的问题 1)所有错误都有前缀属性:为什么所有错误消息都以变量错误为前提?在这种情况下,它是score
。如何从错误消息中删除此属性名称,只显示我的错误消息?有一个简单的方法可以做到这一点吗?
2)红色高光:为什么“得分”标签和相应的输入字段用红色标出。根据_form.html.erb文件,它们是<div class="field">
所以我不明白这个红色轮廓来自哪里。有没有办法改变这个?
谢谢!
答案 0 :(得分:1)
欢迎使用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"}
正如您所看到的,此errors对象上的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 %>
所以希望这有帮助!