<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	>
<channel>
	<title>Comments on: Edge Rails: opcional :select no has_one e belongs_to</title>
	<atom:link href="http://www.nomedojogo.com/2008/05/30/edge-rails-opcional-select-no-has_one-e-belongs_to/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.nomedojogo.com/2008/05/30/edge-rails-opcional-select-no-has_one-e-belongs_to/</link>
	<description></description>
	<pubDate>Sun, 07 Sep 2008 15:55:43 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6.1</generator>
		<item>
		<title>By: Carlos Brando</title>
		<link>http://www.nomedojogo.com/2008/05/30/edge-rails-opcional-select-no-has_one-e-belongs_to/#comment-1360</link>
		<dc:creator>Carlos Brando</dc:creator>
		<pubDate>Fri, 30 May 2008 21:03:47 +0000</pubDate>
		<guid isPermaLink="false">http://www.nomedojogo.com/?p=753#comment-1360</guid>
		<description>Excelente!</description>
		<content:encoded><![CDATA[<p>Excelente!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: José Valim</title>
		<link>http://www.nomedojogo.com/2008/05/30/edge-rails-opcional-select-no-has_one-e-belongs_to/#comment-1361</link>
		<dc:creator>José Valim</dc:creator>
		<pubDate>Fri, 30 May 2008 19:20:23 +0000</pubDate>
		<guid isPermaLink="false">http://www.nomedojogo.com/?p=753#comment-1361</guid>
		<description>No código acima, leiam:

class Bookmark &#60; ActiveRecord::Base
  belongs_to :page, :select =&#62; 'id,url'
end

E Carlos, para não me estender muito aqui, eu continuei o meu raciocínio no meu blog:

http://josevalim.blogspot.com/2008/05/rails-e-patches.html

;)</description>
		<content:encoded><![CDATA[<p>No código acima, leiam:</p>
<p>class Bookmark &lt; ActiveRecord::Base<br />
  belongs_to :page, :select =&gt; &#8216;id,url&#8217;<br />
end</p>
<p>E Carlos, para não me estender muito aqui, eu continuei o meu raciocínio no meu blog:</p>
<p><a href="http://josevalim.blogspot.com/2008/05/rails-e-patches.html" rel="nofollow">http://josevalim.blogspot.com/2008/05/rails-e-patches.html</a><br />
 <img src='http://www.nomedojogo.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: José Valim</title>
		<link>http://www.nomedojogo.com/2008/05/30/edge-rails-opcional-select-no-has_one-e-belongs_to/#comment-1362</link>
		<dc:creator>José Valim</dc:creator>
		<pubDate>Fri, 30 May 2008 19:17:15 +0000</pubDate>
		<guid isPermaLink="false">http://www.nomedojogo.com/?p=753#comment-1362</guid>
		<description>Hahahaha!
Sem querer ser chato, esse foi meu também! =)

Mas foi o último (por enquanto)! ;)

Esse é de especial importância, porque o Pagestacker guarda o conteúdo das páginas crawleadas no banco de dados e trazer esse conteúdo quando só queremos a url, adiciona uma carga desnecessária.

O que vale citar, é que o :select só funciona com queries "simples", porque usa a feature de preload associations do Rails 2 (as associações são carregadas em queries separadas). Por exemplo:

class Bookmark  'id, url'
end

Bookmark.all(:include =&#62; :page)

O último comando busca primeiro todos os bookmarks e depois faz outra query para buscar as "pages" dos bookmarks (no seu log que terá duas queries).

Se você fizer algo como:

Bookmark.all(:include =&#62; :page, :conditions =&#62; 'pages.indexed_at IS NOT NULL')

O Rails vai trazer tudo em uma query só, já que nesse caso ele faz referência entre as tabelas e portanto o :select não funciona, porque o Rails o sobrescreve (comportamento igual ao Rails 1.x).</description>
		<content:encoded><![CDATA[<p>Hahahaha!<br />
Sem querer ser chato, esse foi meu também! =)</p>
<p>Mas foi o último (por enquanto)! <img src='http://www.nomedojogo.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /><br />
Esse é de especial importância, porque o Pagestacker guarda o conteúdo das páginas crawleadas no banco de dados e trazer esse conteúdo quando só queremos a url, adiciona uma carga desnecessária.</p>
<p>O que vale citar, é que o :select só funciona com queries &#8220;simples&#8221;, porque usa a feature de preload associations do Rails 2 (as associações são carregadas em queries separadas). Por exemplo:</p>
<p>class Bookmark  &#8216;id, url&#8217;<br />
end</p>
<p>Bookmark.all(:include =&gt; :page)</p>
<p>O último comando busca primeiro todos os bookmarks e depois faz outra query para buscar as &#8220;pages&#8221; dos bookmarks (no seu log que terá duas queries).</p>
<p>Se você fizer algo como:</p>
<p>Bookmark.all(:include =&gt; :page, :conditions =&gt; &#8216;pages.indexed_at IS NOT NULL&#8217;)</p>
<p>O Rails vai trazer tudo em uma query só, já que nesse caso ele faz referência entre as tabelas e portanto o :select não funciona, porque o Rails o sobrescreve (comportamento igual ao Rails 1.x).</p>
]]></content:encoded>
	</item>
</channel>
</rss>

<!-- Dynamic Page Served (once) in 0.583 seconds -->
