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 に答える