为了在处理错误时在视图中显示 Flash 消息,我们需要做以下几步:
class ApplicationController < ActionController::Base
def add_flash_errors(resource)
resource.errors.full_messages.each do |message|
flash[:error] ||= []
flash[:error] << message
end
end
end
例如,在用户创建失败时:
class UsersController < ApplicationController
def create
@user = User.new(params[:user])
if @user.save
redirect_to root_url, notice: "Account created!"
else
add_flash_errors(@user)
render :new
end
end
end
<% flash[:error].each do |message| %>
<%= message %>
<% end %>
现在,当在控制器中处理错误时,所有错误信息都将显示在 Flash 消息中,并在视图中呈现给用户。