will_paginate + AJAX + sortowanie

Cześć,

Jest tak:

  • strona wyswietla tabele z rekordami - wszystko jest stronnicowane will_paginatem i AJAXEm
  • w naglowku tabeli sa nawzwy kolumn - chce zeby klikajac w to sie sortowalo - tez z AJAXEm

problem:

  • w kontrolerze mam dispatcher w zaleznosci od formatu:

    respond_to do |format|
      format.html
      format.js {
        render :update do |page|
          page.replace_html 'table', :partial => 'list'
        end
      }
    end 
 

[color=green]Pytanie:[/color] czy da sie zrobic tak zeby odpowiedz na js jakos sparamteryzowac?
Narazie jest tak, że jak klikam w numery stron to jest OK, ale jak klikam w nazwe kolumn to sie sortuje ale mi tez wrzuca durzo smieci na strone - tak jakby div byl 2 razy zastepowany.

Przyczyna lezy gdzies w tym ze strony sa obslugiwane przez will_pagniate a w sortowaniu wywoluje link_to_remote (jak uzywam link_to to wszystko dziala tylko AJAXa nie ma).

Wie ktos z was jak to naprawic?

Pozdrawiam,

Troche nie jasno piszesz, w czym dokładnie jest problem. Co to znaczy “wyrzuca mi dużo śmieci na strone”? To że linki masz remote nie ma żadnego znaczenia, ja bym raczej szukał problemu w kontrolerze sortowania. Nie wiem jak ty do tego podchodzisz, ale jak dla mnie to kilikając w sortowanie to odpalana powinna być ta sama akcja co przy linkach stronnicowania, tylkoże z jeszcze jednym parametrem, który (na podstawie którego), podajesz wartość :order do metody paginate. Jak dla mnie nic tu nie powinno nie działać

Chodzi o to konkretnie, że link_to_remote nie robi :replace tylko :update. Innymi slowy nie zamienia sekcji na stronie a tylko zmienia jej wewnetrzny tekst. I stad te “smieci” - bo tak jak widac - kontroler robi szach na zapytania js-owe i tego partiala jeszcze zamienia.

Dzieki za pomoc, juz sobie poradzilem - wrzucilem czesc widoku w dodatkowy partial i dziala.

Pozdrawiam,

Wydaje mi się, że jak pod akcję wywoływaną tym link_to_remote, podepniesz jako widok RJSa, to on robi wszystko co tylko sobie zażyczysz.

Mógłbyś też nie stosować link_to_remote, tylko inaczej rozwiązać stronicowanie: http://kubionrails.blogspot.com/2009/07/ajax-i-stronicowanie-willpaginate.html

Możesz też użyć pluginu do tabelek http://www.datatables.net/