Как правильно использовать Ajax для редактирования строк таблицы? - PullRequest
0 голосов
/ 30 октября 2010

Я просмотрел несколько постов с похожими заголовками, но не нашел ответа.

В моем приложении я хочу разрешить редактирование Активных записей из представления индекса.Это представление использует link_to_remote для каждой строки.Когда пользователь нажимает на ссылку, строка должна быть заменена формой, которую пользователь может отправить через Ajax.

Таблица отображается при отправке коллекции в частичное представление show_item

<% content_tag_for(:tr, show_item) do %>
<td><%=h show_item.name %> </td>
<td><%= show_item.role %></td>
<td><%= link_to_remote 'Edit', :url => edit_participation_path(show_item), :method => :get %> </td>
<% end %>

Мой контроллер реализует редактирование в виде

   def edit
     @participation = Participation.find(params[:id])
     respond_to do |format|
       format.js do
         render(:update) { |page| page[@participation].replace_html(:partial => "edit_item", :object => @participation ) }
       end
     end
    end

Частичное изменение_элемента выглядит как

<% content_tag_for(:tr, edit_item) do %>
  <% form_remote_for edit_item do |f| %>
     <td><%= edit_item.name %></td>
     <td> <%= f.select(:role, options_for_select(all_roles, edit_item.role)) %> </td>
     <td><%= submit_tag 'Update', :class => 'submit' %></td>
     <td><%= link_to_remote 'Cancel', :url => participation_path(edit_item) %></td>
   <% end %>
 <% end %>

Удаленные вызовы проходят, но они неожиданно влияют на таблицу.В Firefox нажатие на ссылку приводит к исчезновению строки.С другой стороны, если я использую Safari, строка обновляется, но вместо выравнивания ячеек с другими строками таблицы вся замененная строка помещается слева от других строк.

Есть идеи?

Ответы [ 2 ]

0 голосов
/ 30 октября 2010

Вы используете какой-либо шаблон? когда вы используете link_to_remote, он загружает результат с шаблоном, если вы его используете.

Проверьте исходный код с помощью аддона Firebug и убедитесь, что код в результате именно тот, который вы хотите.

0 голосов
/ 30 октября 2010

Первое, что приходит на ум, это синтаксическая ошибка в html.Я заметил, что у вас есть 4 тд тега в вашем редакторе, но только 3 в шоу.Возможно, вы захотите просмотреть сгенерированный источник из Firebug и проверить его.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...