Rails 3.1 отображает ошибки проверки при отправке формы ajax - PullRequest
0 голосов
/ 11 октября 2011

Я создал приложение, которое выполняет все операции CRUD удаленно, используя Jquery. На мой взгляд, у меня есть index.html.erb, который содержит форму и таблицу, которая показывает записи. Моя проблема, когда я отправляю форму с ошибками, я не получаю обратной связи. Я считаю, что моя проблема заключается в моем файле create.js.coffee. Я использую authlogic для обработки проверки в некоторых частях формы.

в create.js.coffee

$('<%= escape_javascript(render(:partial => @user))%>')
  .appendTo('#user_table')
  .hide()
  .fadeIn(200)

$('#new_user')[0].reset()

$('#users_count').html '<%= users_count %>'

в index.html.erb

<% title "Create New User for XX" %>
<div id="paginate"><%= paginate @users, :remote => true %></div>
<div id="users_count"><strong><%= users_count %></strong></div>
<div id="users">
    <table id="user_table">
       <tr>
           <th>Id</th>
           <th>First</th>
           <th>Last</th>
           <th>Email</th>
           <th>Last Login</th>
           <th>Created At</th>
           <th>Del</th>
           <th>Edit</th>
       </tr>
<%=render @users %>
</table>
</div>

<h3> Add new user below </h3>
<%= render :partial => 'form' %>

в _form.html.erb

<%= form_for User.new, :remote => true do |f| %>
  <%= f.error_messages %>
  <p>
    <%= f.label :fname %><br />
    <%= f.text_field :fname %>
  </p>
  <p>
    <%= f.label :lname %><br />
    <%= f.text_field :lname %>
  </p>

  <p>
    <%= f.label :email %><br />
    <%= f.text_field :email %>
  </p>

  <p>
    <%= f.label :admin %><br />
    <%= f.check_box :admin %>
  </p>
  <p>
    <%= f.label :password %><br />
    <%= f.password_field :password %>
  </p>

  <p>
    <%= f.label :password_confirmation %><br />
    <%= f.password_field :password_confirmation %>
  </p>
  <p><%= f.submit %></p>
<% end %>

1 Ответ

5 голосов
/ 14 октября 2011

Это было так просто. создать частичные ошибки и ошибки div в представлении и ....

в create.js.coffee

<% if @user.errors.any? %>
$('<%= escape_javascript(render :partial => "errors", :locals => {:target => @user })%>')
   .appendTo('#errors')
<% else %>
$('<%= escape_javascript(render(:partial => @user))%>')
  .appendTo('#user_table')
  .hide()
  .fadeIn(200)

$('#new_user')[0].reset()

$('#users_count').html '<%= users_count %>'
<% end %>
$('#error_clo
...