<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Ruby on Rails &#187; prototype</title>
	<atom:link href="http://petrbobek.cz/clanky/tag/prototype/feed/" rel="self" type="application/rss+xml" />
	<link>http://petrbobek.cz</link>
	<description>Just like RORck</description>
	<lastBuildDate>Sat, 10 Oct 2009 15:59:05 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Stránkování v Ruby on Rails &#8211; will_paginate + AJAX</title>
		<link>http://petrbobek.cz/clanky/strankovani-v-ruby-on-rails-will_paginate-ajax/</link>
		<comments>http://petrbobek.cz/clanky/strankovani-v-ruby-on-rails-will_paginate-ajax/#comments</comments>
		<pubDate>Sat, 10 Oct 2009 13:36:51 +0000</pubDate>
		<dc:creator>petrb</dc:creator>
				<category><![CDATA[Pluginy]]></category>
		<category><![CDATA[Ruby on Rails]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[prototype]]></category>
		<category><![CDATA[stránkování]]></category>
		<category><![CDATA[will paginate]]></category>

		<guid isPermaLink="false">http://petrbobek.cz/?p=113</guid>
		<description><![CDATA[Minule jsme si ukázali jak si jednoduše nastránkovat data pomocí pluginu will_paginate a v dnešním dílu si ukážeme jak tento plugin můžeme rozšířit pomocí AJAXu.]]></description>
			<content:encoded><![CDATA[<p>Mnoho lidí se ptá jak vytvořit stránkování pomocí AJAXu. I když se to nezdá je to velice jednoduché. Pokud nevíte jak se pracuje s pluginem will paginate, tak si přečtěte <a title="Stránkování pomocí pluginu will paginate" href="http://petrbobek.cz/clanky/strankovani-v-ruby-on-rails-will_paginate/" target="_blank">tento</a> článek, budete to potřebovat :)</p>
<p>Nejdříve si musíme natáhnout v hlavičce potřebné soubory.</p>
<pre class="brush: ruby;">
&lt;%= javascript_include_tag :defaults, 'lowpro' %&gt;
</pre>
<p>Jak už jste si všimli je potřeba stáhnout <a title="rozšíření pro prototype" href="http://www.danwebb.net/lowpro" target="_self">low pro</a> knihovnu, kterou napsal <a title="Dan Webb" href="http://www.danwebb.net" target="_self">Dan Webb</a>. Toto rozšíření pro prototype lze stáhnout <a title="Aktuální verze low pro" href="http://github.com/danwrong/low-pro/raw/2f47a651ab1143b2e067de7d2381f615c389a14e/dist/lowpro.js" target="_self">zde</a>. Jakmile budete mít aktuální verzi, je potřeba ji nakopírovat do složky &#8220;public/javascript&#8221;. Poté si otevřete application.js z &#8220;public/javascript&#8221; složky a vložte do něj následující kód.</p>
<pre class="brush: ruby;">
Event.addBehavior.reassignAfterAjax = true; Event.addBehavior({
    'div.pagination a' : Remote.Link
})
</pre>
<p>Taktéž si můžete vytvořit jakýkoliv *.js soubor a vložit kód tam, ale pak je potřeba tento soubor z hlavičky zavolat spolu s lowpro.</p>
<p>Tak a teď máme nachystáno co budeme potřebovat a nyní jsme jen pár řádků od kýženého výsledku. V controlloreru si vybereme potřebná data a nastránkujeme pomocí will paginate, ale taky je potřeba zajistit odpověd na js request.</p>
<pre class="brush: ruby;">def index
    @posts = Post.paginate(:all, :per_page =&gt; 10, :page =&gt; params[:page])

    respond_to do |format|
       format.html
       format.js do
          render :update do |page|
             page.replace 'posts_box', :partial =&gt; [:posts];
          end
       end
    end
end</pre>
<p>Kód ve view (index.rhtml) by mohl vypadat následovně.</p>
<pre class="brush: ruby;">Nalezené články:
&lt;%= render :partial =&gt; &quot;posts&quot; %&gt;
------- #_posts.rhtml -------
&lt;div id=&quot;post_box&quot;&gt;
#zde vypiseme co chceme a nastránkujeme
    &lt;%= will_paginate(@posts) %&gt;
&lt;/div&gt;</pre>
<p>Tak a to je všechno. :)<br />
Petr Bobek</p>
]]></content:encoded>
			<wfw:commentRss>http://petrbobek.cz/clanky/strankovani-v-ruby-on-rails-will_paginate-ajax/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>
