с использованием rails 3.1, jquery v1.6.4, jquery-ujs
Я пытаюсь перезагрузить частичку, но она не работает должным образом:
<div id="album"> <%= render 'album_index' %></div>
<%=link_to 'Show All Albums', albums_path(:filter_by => 'all'), :remote => true%><br>
<%=link_to 'Show Old Albums', albums_path(:filter_by => 'old'), :remote => true%><br>
index.js.erb
$("#album").html('<%= escape_javascript(render 'album_index') %>');
когда пользователь впервые загружает 'index', <% = render 'album_index'%> будет правильно отображаться с возвращением ВСЕХ строк в моей модели альбома по умолчанию. когда пользователь нажимает на ссылку «Показать старые альбомы», действие jquery загружает «album_index», при котором в моем контроллере выполняется определенный запрос на основе параметра [: filter_by] == «old» и возвращается правильный результат, который перешли обратно в поле зрения.
Теперь проблема в том, что когда я нажимаю на ссылку, которая загружает «старый» фильтр, он не перезагружает существующий рендер, а выполняет его двойную рендеринг. Так что мое представление включает рендер 'album_index' с результатами из param [: filter_by] == "all" и ниже того, что 'album_index рендерит снова, но с результатами из param [: filter_by] == "old".
Я бы не стал делать двойной рендеринг, а перезагружал существующий фрагмент с новыми результатами.
есть предложения?