如何在rails视图上显示错误消息?
我是rails
的新手,想在form
的领域申请验证。如何在rails视图上显示错误消息?
myviewsnew.html.erb
<%= form_for :simulation, url: simulations_path do |f| %>
<div class="form-group">
<%= f.label :Row %>
<div class="row">
<div class="col-sm-2">
<%= f.text_field :row, class: 'form-control' %>
</div>
</div>
</div>
.....
Simulation.rb
class Simulation < ActiveRecord::Base
belongs_to :user
validates :row, :inclusion => { :in => 1..25, :message => 'The row must be between 1 and 25' }
end
simulation_controller.rb
class SimulationsController < ApplicationController
def index
@simulations = Simulation.all
end
def new
end
def create
@simulation = Simulation.new(simulation_params)
@simulation.save
redirect_to @simulation
end
private
def simulation_params
params.require(:simulation).permit(:row)
end
我要检查row
场的整数范围模型类和如果它不在范围内,则返回错误消息。我可以从上面的代码检查范围,但不能提前返回错误信息
感谢
error_messages_for
完整语法
更改您的控制器像下面
def new
@simulation = Simulation.new
end
def create
@simulation = Simulation.new(simulation_params)
if @simulation.save
redirect_to action: 'index'
else
render 'new'
end
end
然后在您的新视图中,如果存在错误,您可以像下面那样打印它们。
<%= form_for @simulation, as: :simulation, url: simulations_path do |f| %>
<% if @simulation.errors.any? %>
<% @simulation.errors.full_messages.each do |message| %>
<li><%= message %></li>
<% end %>
<% end %>
<div class="form-group">
<%= f.label :Row %>
<div class="row">
<div class="col-sm-2">
<%= f.text_field :row, class: 'form-control' %>
</div>
</div>
</div>
<% end %>
的形式显示错误消息我已经将我的控制器类添加到问题 在html文件中添加上述代码后,我得到了'',因为它无法找到'@ simulation'参数 –
编辑了我的答案'redirect_to @ simulation'你想用那条线做什么? – Burak
仍然收到相同的错误 –
你只需要将此代码添加到视图文件(myviewsnew.html.erb
):
<%= error_messages_for :simulation %>
检查在http://apidock.com/rails/ActionView/Helpers/ActiveRecordHelper/error_messages_for
做到这一点 -
<%= form_for :simulation, url: simulations_path do |f| %>
<% if f.object.errors.any? %>
<ul>
<% if f.object.errors.each do |message| %>
<li><%= message %></li>
<% end %>
</ul>
<% end %>
..........
<% end %>
如果这里有一个额外的内容:''试图编辑,但它不到6个字符,所以我不会让我这样做。 – rii
http://apidock.com/rails/ActiveModel/Validations/HelperMethods/validates_inclusion_of ...完成。 – zee
@NullSoulException我正在做同样的事情。我想以 –