0

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,所以我需要将其更改为重定向(有错误)。我怎样才能做到这一点 ?

提前致谢

4

1 回答 1

0

在重定向的情况下,我通常使用 railsflash对象并直接添加错误。

flash[:alert] = @user.errors.full_messages.join(' ')
于 2013-10-16T15:30:42.377 回答