要访问Rails中的"不能为空"错误消息,您可以使用以下方法:
在控制器中,您可以使用rescue_from
方法捕获ActiveRecord::RecordInvalid
异常,然后从异常中获取错误消息。例如:
class ApplicationController< ActionController::Base
rescue_from ActiveRecord::RecordInvalid, with: :render_record_invalid_error
private
def render_record_invalid_error(exception)
@error_message = exception.record.errors.full_messages.join(", ")
render json: { error: @error_message }, status: :unprocessable_entity
end
end
在模型中,您可以使用validates
方法定义验证规则,并使用errors
方法获取错误消息。例如:
class User< ApplicationRecord
validates :name, presence: true
end
user = User.new
user.valid?
user.errors.full_messages # 获取错误消息
在视图中,您可以使用object.errors
方法获取错误消息。例如:
<%= form_with(model: user) do |form| %>
<%= form.label :name %>
<%= form.text_field :name %>
<% if user.errors.any? %>
<div id="error_explanation">
<h2><%= pluralize(user.errors.count, "error") %> prohibited this user from being saved:</h2>
<ul>
<% user.errors.full_messages.each do |message| %>
<li><%= message %></li>
<% end %>
</ul>
</div>
<% end %>
<%= form.submit %>
<% end %>
这些方法可以帮助您访问Rails中的"不能为空"错误消息,并根据需要进行处理。
领取专属 10元无门槛券
手把手带您无忧上云