Ruby on rails 3.2 如何在不同的模型视图中闪烁错误

Ruby on rails 3.2 如何在不同的模型视图中闪烁错误,ruby-on-rails-3.2,messages,Ruby On Rails 3.2,Messages,我对Rails有点陌生,所以请容忍我 我有两种型号的客户机和产品。产品是依赖的,因此,在客户端显示视图中,我创建了一个产品创建表单。创建成功或不成功后,我返回客户端显示视图。在那里,如果创建出错,我想显示任何错误,但我似乎无法访问在尝试创建产品实例时使用的@product,以获取其错误。重定向到客户机路径(客户机)时是否必须传递该@product?如果是,怎么做 顺便说一句,成功是有效的,因为我使用flash来显示,但是对于错误,我确实想在表单上方的不同位置显示它们。如果其他方法都不起作用,我想

我对Rails有点陌生,所以请容忍我

我有两种型号的客户机和产品。产品是依赖的,因此,在客户端显示视图中,我创建了一个产品创建表单。创建成功或不成功后,我返回客户端显示视图。在那里,如果创建出错,我想显示任何错误,但我似乎无法访问在尝试创建产品实例时使用的@product,以获取其错误。重定向到客户机路径(客户机)时是否必须传递该@product?如果是,怎么做


顺便说一句,成功是有效的,因为我使用flash来显示,但是对于错误,我确实想在表单上方的不同位置显示它们。如果其他方法都不起作用,我想我应该将错误传递给flash,但我也不知道怎么做。

你是对的……你必须在重定向到客户端时传递@product\U路径(客户端)。。 例如…客户端路径(客户端,@product)

您可以在客户端显示页面中显示错误消息,如下所示

      <% if @product.errors.any? %>
          <div class="alert alert-error">
            <ul>
              <% @product.errors.full_messages.each do |msg| %>
                  <li> <%= msg %></li>
              <% end %>
            </ul>
          </div>
      <% end %>


我试过这个。只是在重定向中添加了@product(错误显示已经存在),但没有显示错误。还缺什么吗?我必须在controller show方法中做些什么来处理新转发的实例变量吗?顺便说一句,在考虑过它之后。我不知道这是怎么回事。重定向到是一个“命令”发送回浏览器,以便发送“clients/[id]”请求。这如何添加产品错误消息所需的所有数据???(并不是说不可能,但我非常怀疑)。现在,product实例变量甚至还没有保存,这就是为什么我首先要显示错误消息的原因!因此,它不能只是将产品id添加到发送到浏览器的链接中。