1

在我的 Rails 3 应用程序中,我有以下部分在主布局中显示错误消息:

<% flash.each do |name, msg| %>
  <% if msg.is_a?(String) %>
    <div class="alert alert-<%= name == :notice ? "success" : "error" %>">
      <a class="close" data-dismiss="alert">&#215;</a>
      <%= content_tag :div, msg, :id => "flash_#{name}" %>
    </div>
  <% end %>
<% end %>

我正在使用 JQuery 调用 create 方法并创建了一个 create.js.erb,它在创建模型或验证错误后成功运行。

问题是:如何在 create.js.erb 文件的部分内容中显示验证错误列表?或者......可以从控制器完成吗?

谢谢

4

1 回答 1

3

在你的 create.js.erb 中试试这个,

<% if @your_variable.errors.count > 0 %> #your_variable is the variable you declared in your controller
  $('.new-user-form').html("<%= escape_javascript(render 'form')%>"); # new-user-form is the class name of the div that had the form
<% else %>
  window.location.href='<%= url_for(:action => :index) %>'
<% end %>

在这种情况下,您的表单是带有 div 的部分,如下所示:

<%= form_for(@your_variable, :remote => true) do >
  ....
<% end %>

<div class="new-user-form"> # In your index or any page that you called that partial
</div>

您需要format js在控制器中添加您的创建操作

如果您提供更多代码,我可以指定确切的内容。这只是你做的一个想法。

于 2013-03-19T15:05:54.390 回答