Rails Ruby 中的表单提交旁边出现简单的表单错误消息
Simple form error messages appearing next to the form submission in Ruby on Rails
我正在处理一个表单,但在提交表单时遇到了问题。如果用户弄乱或跳过其中一个条目,所有错误消息都会呈现在页面顶部。我想知道是否可以让它们在每次提交的旁边呈现?
我的控制器看起来像
def new
@form_submission ||= FormSubmission.new
end
def create
@form_submission = FormSubmission.new(form_submission_params)
if @form_submission.save
redirect_to thank_you_path
else
render :new
end
end
我的观点看起来像
.field
= f.label :first_name, required: false, class: "font required-field"
= f.text_field :first_name, :required => "", class: "stretch test"
和我的CSS
.font{
vertical-align: text-bottom;
font-size: 15px;
font-weight: bold;
font-family: "Helvetica Neue";
height: 15px;
}
.required-field::before{
content: ' *';
float: right;
color: red;
padding-left: 5px;
}
.test:valid{
border: 1px solid #00aeef;
}
.test:invalid{
border: 1px solid red;
}
每个模型都将定义一个错误散列,由模型的每个属性的错误组成。您可以在您的视图中执行类似 @form_submission.errors.full_messages_for(:first_name)
的操作以仅访问一个属性的错误,在本例中是 @form_submission
模型的 first_name
属性的错误。
我通常会为表单错误创建一个部分,看起来像这样
<% unless errors.nil? %>
<div class="error-explanation">
<ul class="list-unstyled">
<% errors.each do |error| %>
<li><%= error %></li>
<% end %>
</ul>
</div>
<% end %>
然后为表单中的每个字段访问它
<%= render partial: 'shared/form_error', locals: {errors: @form_submission.errors.full_messages_for(:body)} %>
我正在处理一个表单,但在提交表单时遇到了问题。如果用户弄乱或跳过其中一个条目,所有错误消息都会呈现在页面顶部。我想知道是否可以让它们在每次提交的旁边呈现?
我的控制器看起来像
def new
@form_submission ||= FormSubmission.new
end
def create
@form_submission = FormSubmission.new(form_submission_params)
if @form_submission.save
redirect_to thank_you_path
else
render :new
end
end
我的观点看起来像
.field
= f.label :first_name, required: false, class: "font required-field"
= f.text_field :first_name, :required => "", class: "stretch test"
和我的CSS
.font{
vertical-align: text-bottom;
font-size: 15px;
font-weight: bold;
font-family: "Helvetica Neue";
height: 15px;
}
.required-field::before{
content: ' *';
float: right;
color: red;
padding-left: 5px;
}
.test:valid{
border: 1px solid #00aeef;
}
.test:invalid{
border: 1px solid red;
}
每个模型都将定义一个错误散列,由模型的每个属性的错误组成。您可以在您的视图中执行类似 @form_submission.errors.full_messages_for(:first_name)
的操作以仅访问一个属性的错误,在本例中是 @form_submission
模型的 first_name
属性的错误。
我通常会为表单错误创建一个部分,看起来像这样
<% unless errors.nil? %>
<div class="error-explanation">
<ul class="list-unstyled">
<% errors.each do |error| %>
<li><%= error %></li>
<% end %>
</ul>
</div>
<% end %>
然后为表单中的每个字段访问它
<%= render partial: 'shared/form_error', locals: {errors: @form_submission.errors.full_messages_for(:body)} %>