提问人:Santiago Cueva 提问时间:11/9/2023 最后编辑:3limin4t0rSantiago Cueva 更新时间:11/9/2023 访问量:38
为什么验证错误只在奇数尝试时显示?
Why are validation errors only shown on odd attempts?
问:
我有这个视图html.erb
<h1>Edit</h1>
<%= render "form", appointment: @appointment, from: @source %>
<div>
<% if params[:source] == "confirmed" %>
<%= link_to "Volver atras", confirmed_path %>
<% elsif params[:source] == "request" %>
<%= link_to "Volver atras", requests_path %>
<% elsif params[:source] == "user" %>
<%= link_to "Volver atras", @appointment %> |
<% end %>
</div>
形式是:
<%= form_with(model: appointment) do |form| %>
<% if appointment.errors.any? %>
<div style="color: red">
<h2> Tu turno tiene <%= appointment.errors.count %> error/es:</h2>
<ul>
<% appointment.errors.each do |error| %>
<li><%= error.full_message.split(" ")[1..].join(" ") %></li>
<% end %>
</ul>
</div>
<% end %>
<div>
<%= form.label :time, style: "display: block" %>
<%= form.datetime_field :time%>
</div>
<div>
<%= form.hidden_field :source, value: @from %>
<%= form.submit %>
</div>
<% end %>
还有我的预约控制员:
def update
respond_to do |format|
ant= @appointment.state
if params[:appointment][:source] == "request"
@appointment.state= 3
if @appointment.update(appointment_params)
format.html { redirect_to requests_path, notice: "Turno actualizado, espere la confirmación." }
format.json { render :show, status: :ok, location: @appointment }
else
@appointment.state= ant
format.html { render :edit, status: :unprocessable_entity }
format.json { render json: @appointment.errors, status: :unprocessable_entity }
end
end
end
因此,当我在视图中并且选择无效时间时,我收到一个警告我的错误,问题是我第二次犯错误时,我没有收到警告,并且时间字段被重置为我之前的时间字段(它不会第一次发生,即使屏幕上出现错误,它仍然存在)。第三次有效,但第四次同样的事情再次发生
我不知道该怎么做,我是 ruby on rails 的新手
答:
0赞
Thanh
11/9/2023
#1
我在编辑操作中设置了@source的值。
当更新失败时,它会呈现“编辑”视图,并且不会在编辑操作中执行代码
因此,您可能希望在提交表单并出现错误后为 @source 设置值:
else
@appointment.state= ant
# set value for @source here, ex:
@source = params[:appointment][:source]
format.html { render :edit, status: :unprocessable_entity }
format.json { render json: @appointment.errors, status: :unprocessable_entity }
end
评论
from: @source
value: @from
value: from
@