Ruby on rails 表单视图中未显示验证错误消息
我有一个简单的模型:Ruby on rails 表单视图中未显示验证错误消息,ruby-on-rails,ruby,ruby-on-rails-5,simple-form,Ruby On Rails,Ruby,Ruby On Rails 5,Simple Form,我有一个简单的模型: class Property < ApplicationRecord belongs_to :user has_many :invoices, dependent: :destroy has_many :tenants, dependent: :destroy validates :street, presence: true, length: { maximum: 50} validates :city, presence: true, length:
class Property < ApplicationRecord
belongs_to :user
has_many :invoices, dependent: :destroy
has_many :tenants, dependent: :destroy
validates :street, presence: true, length: { maximum: 50}
validates :city, presence: true, length: { maximum: 50}
validates :zip, presence: true, length: { maximum: 10}
validates :rent, presence: true, length: { maximum: 50}
def receivable
(self.rent.to_i + self.charges.to_i)
end
end
下面是表单视图:
<div class="container center">
<div class="row white">
<div">
<h2>Nouveau bien</h2>
<%= simple_form_for([@user, @property]) do |j| %>
<%= j.input :number, label:"Numéro" %>
<%= j.input :streetype, label: "Laisser vide si nécessaire", collection: ["
","rue","boulevard","allée"] , prompt: "Choisir" %>
<%= j.input :street, label:"Nom" %>
<%= j.input :city, label:"Commune / Ville" %>
<%= j.input :zip, label:"Code Postal" %>
<%= j.input :rent, label:"Montant du Loyer" %>
<%= j.input :charges, label:"Montant des charges" %>
<br>
<%= j.submit 'Créer', class: "form-control btn btn-info" %>
<% end %>
</div>
</div>
</div>
在else
块中,您不应该将\u重定向到新的\u用户\u属性\u路径
,而应该
render 'new'
原因:
redirect
指示浏览器发出新的请求,因此您最终失去了@property
对象的上下文及其错误。它实际上向new
操作发出了一个新的请求render
将继续当前操作(在本例中为create
),并在new
视图中使用@property
、错误和以前的表单正文呈现响应。而不是在else
块中重定向到新的用户属性路径,你应该render'new'
Hello kiddorails!是的,它有效。你知道为什么吗?谢谢,请回答这个问题,这样我就可以相信你了!
<div class="container center">
<div class="row white">
<div">
<h2>Nouveau bien</h2>
<%= simple_form_for([@user, @property]) do |j| %>
<%= j.input :number, label:"Numéro" %>
<%= j.input :streetype, label: "Laisser vide si nécessaire", collection: ["
","rue","boulevard","allée"] , prompt: "Choisir" %>
<%= j.input :street, label:"Nom" %>
<%= j.input :city, label:"Commune / Ville" %>
<%= j.input :zip, label:"Code Postal" %>
<%= j.input :rent, label:"Montant du Loyer" %>
<%= j.input :charges, label:"Montant des charges" %>
<br>
<%= j.submit 'Créer', class: "form-control btn btn-info" %>
<% end %>
</div>
</div>
</div>
render 'new'