<?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>Snow Giraffe Tech &#187; eload-select</title>
	<atom:link href="http://www.snowgiraffe.com/tech/tag/eload-select/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.snowgiraffe.com/tech</link>
	<description>rails, rubies, and sometimes dolphins</description>
	<lastBuildDate>Mon, 17 Oct 2011 17:45:19 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.5</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Eager loading Select Plugin: when :select plays nice with :include</title>
		<link>http://www.snowgiraffe.com/tech/329/eager-loading-select-plugin-when-select-plays-nice-with-include/</link>
		<comments>http://www.snowgiraffe.com/tech/329/eager-loading-select-plugin-when-select-plays-nice-with-include/#comments</comments>
		<pubDate>Thu, 26 Mar 2009 15:50:26 +0000</pubDate>
		<dc:creator>blythe</dc:creator>
				<category><![CDATA[ActiveRecord]]></category>
		<category><![CDATA[Ruby on Rails]]></category>
		<category><![CDATA[:include]]></category>
		<category><![CDATA[:select]]></category>
		<category><![CDATA[eager loading]]></category>
		<category><![CDATA[eload-select]]></category>
		<category><![CDATA[plugin]]></category>
		<category><![CDATA[Rails]]></category>

		<guid isPermaLink="false">http://www.snowgiraffe.com/tech/?p=329</guid>
		<description><![CDATA[eload-select plugin. Allowing :select to play nice with :include for Ruby on Rails ActiveRecord finders.]]></description>
			<content:encoded><![CDATA[<p>With <span class="inline_code">ActiveRecord::Base.find</span>, <span class="inline_code">:select</span> is ignored when <span class="inline_code">:include</span> is specified. There&#8217;s been many a <a href="http://dev.rubyonrails.org/ticket/5371" target="_blank">ticket</a> and proposed but denied <a href="http://dev.rubyonrails.org/attachment/ticket/7147/options_select_working_with_eager_loading.diff" target="_blank">patch</a> and <a href="http://groups.google.com/group/rubyonrails-talk/browse_thread/thread/7b5b6f40b9735723/e69da924283f7505" target="_blank">google discussion</a> to provide this functionality.</p>
<p>eload-select plugin to the rescue!</p>
<pre class="ruby"><span class="constant">Employee</span><span class="punct">.</span><span class="ident">find</span> <span class="symbol">:all</span><span class="punct">,</span> <span class="symbol">:select</span> <span class="punct">=&gt;</span> <span class="punct">'</span><span class="string">addresses.city, address.state, employees.*</span><span class="punct">',</span>
<span class="symbol">                    :include</span> <span class="punct">=&gt;</span> <span class="symbol">:address</span></pre>
<p>The advantages of the <a href="http://github.com/blythedunham/eload-select/tree/master" target="_blank">eload-select plugin</a>:</p>
<ol>
<li>Works with aliases and database functions</li>
<pre class="ruby"><span class="constant">Employee</span><span class="punct">.</span><span class="ident">find</span> <span class="symbol">:first</span><span class="punct">,</span>
  <span class="symbol">:select</span> <span class="punct">=&gt;</span> <span class="punct">'</span><span class="string">now() as current_time, addresses.city, DATE(addresses.created_at) as addresses.created_at, employee.*</span><span class="punct">'</span>
  <span class="symbol">:include</span> <span class="punct">=&gt;</span> <span class="symbol">:address</span></pre>
<li>Plays nice with other plugins like <a href="http://www.continuousthinking.com/tags/arext" target="_blank">ar-extensions</a></li>
<li>Selects columns on the base table (some options force you to select all of the base table)</li>
<pre class="ruby"><span class="constant">Employee</span><span class="punct">.</span><span class="ident">find</span> <span class="symbol">:all</span><span class="punct">,</span> <span class="symbol">:select</span> <span class="punct">=&gt;</span> <span class="punct">'</span><span class="string">addresses.city, employees.name, employees.start_date</span><span class="punct">',</span>
                    <span class="symbol">:include</span> <span class="punct">=&gt;</span> <span class="symbol">:address</span></pre>
</ol>
<pre>script/plugin install git://github.com/blythedunham/eload-select.git</pre>
<p>And your off! Recently updated to work with all versions of rails including 2.3.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.snowgiraffe.com/tech/329/eager-loading-select-plugin-when-select-plays-nice-with-include/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

