Страница не обновляется при использовании jquery / ajax - PullRequest
0 голосов
/ 07 октября 2011

Я создаю веб-приложение, которое позволяет людям добавлять курсы в корзину. У меня есть модель корзины, у которой есть LineItems.

В корзине у меня есть измененная кнопка, которая позволяет людям удалять отдельные позиции. Это отлично работает. Вот код для этого:

_line_item.html.erb:

<div class="delete_line_item"><%= button_to 'Delete', line_item, 
{:method => :delete, :remote => true} %></div>

Контроллер line_items:

  def destroy
    @user = current_user
    @line_item.destroy
    @cart = @user.cart

    respond_to do |format|
      format.html { redirect_to(root_path) }
      format.js
      format.xml  { head :ok }
    end
  end

Затем файл destroy.js.erb, расположенный в папке my views / line_items:

$("#cart").html("<%= escape_javascript(render(@cart)) %>");

Я хочу сделать что-то подобное для опустошения корзины. Для этого я использую действие обновления в контроллере тележек. Вот соответствующие куски кода для этого:

<div class="empty_cart"><%= button_to 'Empty cart', cart, {:method => :put, :remote => true, 
:confirm => 'Are you sure?'} %></div>

#carts controller
  def update
    if @cart.line_items
      @cart.line_items.each do |item|
        item.destroy
      end 
    end 

    respond_to do |format|
      if @cart.update_attributes(params[:cart])
        format.html { redirect_to(root_path, :notice => 'Cart emptied.') }
        debugger
        format.js
        format.xml  { head :ok }

Наконец, вот файл update.js.erb Я поместил в свою папку views / carts :

$("#cart").html("<%= escape_javascript(render(@cart)) %>");

Проблема в том, что когда я пытаюсь очистить корзину, запрос проходит (в том случае, когда я обновляю страницу, корзина пуста), но изменение не появляется сразу после нажатия. Это заставляет меня думать, что мой браузер просто не рендерит файл .js.erb. Нужно ли помещать файл update.js.erb в другую папку или переименовывать его? Или что-то еще происходит?

1 Ответ

0 голосов
/ 07 октября 2011

Вместо использования действия обновления, почему бы вам просто не использовать действие уничтожения корзины вместо использования обновления? Это то, что я сделал, и это сработало.

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