我在视图form_for(@user)
中使用settings#info
:
# ./views/settings/info.html.erb
<%= form_for(@user) do |f| %>
<% if @user.errors.any? %>
<% @user.errors.full_messages.each do |msg| %>
<li>* <%= msg %></li>
<% end %>
<% end %>
...
<% end %>
# ./controllers/users_controller.rb
def update
@user = User.find(current_user.id)
if @user.update_attributes(params["user"])
....
else
render template: 'settings/info'
end
end
一切都很好,如果有的话会显示错误。但是,因为我在settings_controllers.rb的info
操作中传递了一些变量,所以我需要将其更改为重定向(带有错误)。我怎么能这样做?
提前致谢
答案 0 :(得分:0)
在重定向的情况下,我通常使用rails flash
对象并直接添加错误。
flash[:alert] = @user.errors.full_messages.join(' ')