【发布时间】:2020-07-07 13:51:31
【问题描述】:
由于某种原因,我的验证错误被拾取但没有显示在页面上,因为我希望下面是我的模型和新视图。我还将附上一张我的验证错误被拾取但未显示在视图中的图片。
Model
class Review < ApplicationRecord
belongs_to :user
belongs_to :tea
validates :title, presence: true
validates :rating, numericality: {only_integer: true, greater_than_or_equal_to: 0, less_than: 11}
validates :tea, uniqueness: {scope: :user, message: "has already been reviewed by you" }
scope :order_by_rating, ->{group(:id).order('avg(reviews.rating) desc')}
end
View
<h1>Write a Review for </h1>
<%= form_for Review.new do |f|%>
<% if @review.errors.any? %>
<h2>Errors:</h2>
<ul>
<% @review.errors.full_messages.each do |message| %>
<li><%= message %></li>
<% end %>
</ul>
<% end %>
【问题讨论】:
-
您可能想使用
save而不是save! -
我认为是因为您使用的是
save!。 -
我完全错过了我还有保存!在另一个我忘记的分支上工作,谢谢!
-
您还使用
<%= form_for Review.new do |f|%>而不是<%= form_for @review do |f|%>。对于前者,任何用户输入都会丢失。
标签: ruby-on-rails ruby validation error-handling