我有一个包含name文本字段的表单,它有一个在线状态验证。当用户忘记输入名称时,文本字段变为红色,这一切都很好,但我想清理一下我的视图,但我不确定如何?也许是帮手?也许是一种方法?我对rails很新,我正在寻找关于这个问题的一些建议。这是我的视图代码。
查看
<% if f.object.errors[:name].present? %>
<%= f.text_field :name, :class => 'alert' %>
<div class="validation">
<% f.object.errors[:name].each do |error| %>
<%= error %>
<% end %>
</div>
<% else %>
<%= f.text_field :name %>
<% end %>
这是一个相当标准的if else声明,但我觉得它有点太难看了。
答案 0 :(得分:0)
您可以使用模型验证获得类似的结果。如果您需要在模型上进行状态验证,则它会告诉用户该字段不能为空。这将允许您告诉用户他们不能将表单字段留空,而无需在您的视图中手动编码。
示例:发布模型 - app / models / post.rb
class Post < ActiveRecord::Base
validates :title, :presence => true
validates :body, :presence => true
end
如果用户现在尝试提交标题或正文为空的表单,则会要求他们重新提交表单,并提供一个小工具提示&#34;请填写此字段&#34;。
视图中不需要逻辑来实现此目的,只需验证模型中的状态。