<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Rails on the road</title>
	
	<link>http://www.extendi.it/ruby-on-rails</link>
	<description>Risorsa italiana sul Ruby on Rails</description>
	<pubDate>Thu, 29 Dec 2011 17:46:35 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.7</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/rails-on-the-road" /><feedburner:info uri="rails-on-the-road" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><geo:lat>43.7666666</geo:lat><geo:long>11.25</geo:long><item>
		<title>Ruby on Rails a Firenze</title>
		<link>http://feedproxy.google.com/~r/rails-on-the-road/~3/tBI-vOXTPrM/</link>
		<comments>http://www.extendi.it/ruby-on-rails/index.php/2011/12/29/lavoro-ruby-on-rails-a-firenze/#comments</comments>
		<pubDate>Thu, 29 Dec 2011 14:54:11 +0000</pubDate>
		<dc:creator>matte</dc:creator>
		
		<category><![CDATA[Job]]></category>

		<guid isPermaLink="false">http://www.extendi.it/ruby-on-rails/?p=1082</guid>
		<description><![CDATA[Ciao a tutti! Cerchiamo aiuto per alcuni progetti in Ruby on Rails a partire dal nuovo anno (2012):


Ruby on Rails
MySQL
jQuery


Interessato? Mandaci una mail o vieni a trovarci a Lastra a Signa in Via A. Diaz, 60.

&#8211;

Hi all! We are searching a Ruby on Rails developer starting from the beginning of 2012.


Ruby on Rails
MySQL
jQuery


Interested? Send us [...]]]></description>
			<content:encoded><![CDATA[<p>Ciao a tutti! Cerchiamo aiuto per alcuni progetti in Ruby on Rails a partire dal nuovo anno (2012):</p>

<ul>
<li>Ruby on Rails</li>
<li>MySQL</li>
<li>jQuery</li>
</ul>

<p>Interessato? Mandaci una mail o vieni a trovarci a <a href="http://maps.google.it/maps?q=Extendi,+Lastra+a+Signa&amp;hl=it&amp;sll=43.768837,11.105212&amp;sspn=0.007833,0.009549&amp;vpsrc=0&amp;gl=it&amp;hq=Extendi,&amp;hnear=Lastra+a+Signa+Firenze,+Toscana&amp;t=h&amp;z=17">Lastra a Signa in Via A. Diaz, 60</a>.</p>

<p>&#8211;</p>

<p>Hi all! We are searching a Ruby on Rails developer starting from the beginning of 2012.</p>

<ul>
<li>Ruby on Rails</li>
<li>MySQL</li>
<li>jQuery</li>
</ul>

<p>Interested? Send us an email or visit us at <a href="http://maps.google.it/maps?q=Extendi,+Lastra+a+Signa&amp;hl=it&amp;sll=43.768837,11.105212&amp;sspn=0.007833,0.009549&amp;vpsrc=0&amp;gl=it&amp;hq=Extendi,&amp;hnear=Lastra+a+Signa+Firenze,+Toscana&amp;t=h&amp;z=17">Lastra a Signa in Via A. Diaz, 60</a>.</p>
<img src="http://feeds.feedburner.com/~r/rails-on-the-road/~4/tBI-vOXTPrM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.extendi.it/ruby-on-rails/index.php/2011/12/29/lavoro-ruby-on-rails-a-firenze/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.extendi.it/ruby-on-rails/index.php/2011/12/29/lavoro-ruby-on-rails-a-firenze/</feedburner:origLink></item>
		<item>
		<title>Mercatini di Natale &amp; Apple Store</title>
		<link>http://feedproxy.google.com/~r/rails-on-the-road/~3/eP4Vrv05ZPg/</link>
		<comments>http://www.extendi.it/ruby-on-rails/index.php/2011/12/09/mercatini-di-natale-apple-store/#comments</comments>
		<pubDate>Fri, 09 Dec 2011 15:08:10 +0000</pubDate>
		<dc:creator>matte</dc:creator>
		
		<category><![CDATA[Altro]]></category>

		<guid isPermaLink="false">http://www.extendi.it/ruby-on-rails/?p=1076</guid>
		<description><![CDATA[Un bel post dall&#8217;Apple Store era tanto che non si faceva! Ecco una foto da Monaco di Baviera!


]]></description>
			<content:encoded><![CDATA[<p>Un bel post dall&#8217;Apple Store era tanto che non si faceva! Ecco una foto da Monaco di Baviera!</p>

<p><img src="http://www.extendi.it/ruby-on-rails/wp-content/uploads/2011/12/photo1.jpg" alt="photo1" title="photo1" width="400" height="300" class="alignnone size-full wp-image-1079" /></p>
<img src="http://feeds.feedburner.com/~r/rails-on-the-road/~4/eP4Vrv05ZPg" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.extendi.it/ruby-on-rails/index.php/2011/12/09/mercatini-di-natale-apple-store/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.extendi.it/ruby-on-rails/index.php/2011/12/09/mercatini-di-natale-apple-store/</feedburner:origLink></item>
		<item>
		<title>Recipefy é in TV!</title>
		<link>http://feedproxy.google.com/~r/rails-on-the-road/~3/qEXEeTlwgs4/</link>
		<comments>http://www.extendi.it/ruby-on-rails/index.php/2011/04/11/recipefy-e-in-tv/#comments</comments>
		<pubDate>Mon, 11 Apr 2011 13:34:37 +0000</pubDate>
		<dc:creator>matte</dc:creator>
		
		<category><![CDATA[Altro]]></category>

		<guid isPermaLink="false">http://www.extendi.it/ruby-on-rails/?p=1073</guid>
		<description><![CDATA[Guardate qua: http://bit.ly/el4iOk
]]></description>
			<content:encoded><![CDATA[<p>Guardate qua: <a href="http://bit.ly/el4iOk">http://bit.ly/el4iOk</a></p>
<img src="http://feeds.feedburner.com/~r/rails-on-the-road/~4/qEXEeTlwgs4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.extendi.it/ruby-on-rails/index.php/2011/04/11/recipefy-e-in-tv/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.extendi.it/ruby-on-rails/index.php/2011/04/11/recipefy-e-in-tv/</feedburner:origLink></item>
		<item>
		<title>enhanced_form_tag_helper plugin e Rails 3</title>
		<link>http://feedproxy.google.com/~r/rails-on-the-road/~3/hPYipk6OI6s/</link>
		<comments>http://www.extendi.it/ruby-on-rails/index.php/2011/01/21/enhanced-form-tag-helper-rails3/#comments</comments>
		<pubDate>Fri, 21 Jan 2011 10:52:28 +0000</pubDate>
		<dc:creator>matte</dc:creator>
		
		<category><![CDATA[Rails3]]></category>

		<category><![CDATA[plugin]]></category>

		<guid isPermaLink="false">http://www.extendi.it/ruby-on-rails/?p=1070</guid>
		<description><![CDATA[Mi sono trovato a fare un porting da Rails 1.2.3 a 3.0.3. A parte dover aggiornare quasi tutto mi sono imbattuto in un valido sostituto dell&#8217;enhanced_form_tag_helper plugin.

Potete tranquillamente sostituirlo con form_helper_css.

Utilizza gli stessi nomi di classe e non ho nemmeno dovuto aggiornare il foglio di stile.
]]></description>
			<content:encoded><![CDATA[<p>Mi sono trovato a fare un porting da Rails 1.2.3 a 3.0.3. A parte dover aggiornare quasi tutto mi sono imbattuto in un valido sostituto dell&#8217;enhanced_form_tag_helper plugin.</p>

<p>Potete tranquillamente sostituirlo con <a href="https://github.com/phallstrom/form_helper_css">form_helper_css</a>.</p>

<p>Utilizza gli stessi nomi di classe e non ho nemmeno dovuto aggiornare il foglio di stile.</p>
<img src="http://feeds.feedburner.com/~r/rails-on-the-road/~4/hPYipk6OI6s" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.extendi.it/ruby-on-rails/index.php/2011/01/21/enhanced-form-tag-helper-rails3/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.extendi.it/ruby-on-rails/index.php/2011/01/21/enhanced-form-tag-helper-rails3/</feedburner:origLink></item>
		<item>
		<title>Feedmyapp has been acquired by OnClick Solutions ltd</title>
		<link>http://feedproxy.google.com/~r/rails-on-the-road/~3/eHvWGXRVBHI/</link>
		<comments>http://www.extendi.it/ruby-on-rails/index.php/2010/09/20/feedmyapp-has-been-acquired-by-onclick-solutions-ltd/#comments</comments>
		<pubDate>Mon, 20 Sep 2010 14:39:33 +0000</pubDate>
		<dc:creator>duccio</dc:creator>
		
		<category><![CDATA[Comunicati]]></category>

		<guid isPermaLink="false">http://www.extendi.it/ruby-on-rails/?p=1057</guid>
		<description><![CDATA[We are excited to announce that Feedmyapp has been acquired by OnClick Solutions ltd!

Feedmyapp was born three years ago as an experiment and has been very successful beyond our expectations, now continues the race! It will grow even further, there will be interesting changes and exciting new features that make the service better and better [...]]]></description>
			<content:encoded><![CDATA[<p>We are excited to announce that <a href="http://www.feedmyapp.com">Feedmyapp</a> has been acquired by <a href="http://www.onclickltd.com/">OnClick Solutions ltd</a>!</p>

<p>Feedmyapp was born three years ago as an experiment and has been very successful beyond our expectations, now continues the race! It will grow even further, there will be interesting changes and exciting new features that make the service better and better &#8230; so continue to get your <strong> Web 2.0 daily dose</strong>!</p>

<p>We can only wish good luck to Neran, the new Feedmyapp manager, and thanks to everyone for joining us with great passion. We also thank the sponsors who believed in Feedmyapp and all editions managers who contributed to make Feedmyapp famous worldwide.</p>

<p>For <a href="http://www.extendi.it"> Extendi</a> <a href="http://www.extendi.it/web-20-team/team">team</a> is time to try something different &#8230; Stay tuned!</p>
<img src="http://feeds.feedburner.com/~r/rails-on-the-road/~4/eHvWGXRVBHI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.extendi.it/ruby-on-rails/index.php/2010/09/20/feedmyapp-has-been-acquired-by-onclick-solutions-ltd/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.extendi.it/ruby-on-rails/index.php/2010/09/20/feedmyapp-has-been-acquired-by-onclick-solutions-ltd/</feedburner:origLink></item>
		<item>
		<title>Feedmyapp è stata comprata da OnClick Solutions Ltd</title>
		<link>http://feedproxy.google.com/~r/rails-on-the-road/~3/Ub9GGRJi4Z8/</link>
		<comments>http://www.extendi.it/ruby-on-rails/index.php/2010/09/20/feedmyapp-e-stata-comprata-da-onclick-solutions-ltd/#comments</comments>
		<pubDate>Mon, 20 Sep 2010 14:10:54 +0000</pubDate>
		<dc:creator>duccio</dc:creator>
		
		<category><![CDATA[Comunicati]]></category>

		<guid isPermaLink="false">http://www.extendi.it/ruby-on-rails/?p=1049</guid>
		<description><![CDATA[Siamo eccitati nell&#8217;annunciarvi che Feedmyapp è stata comprata da OnClick Solutions ltd!

Feedmyapp è nata 3 anni fa come esperimento ed ha avuto successo ben oltre ogni nostra aspettativa, adesso passa di mano e continua la corsa! Crescerà ancora, sono previsti cambiamenti interessanti e nuove eccitanti funzionalità che renderanno il servizio sempre migliore&#8230; continuate a prendere [...]]]></description>
			<content:encoded><![CDATA[<p>Siamo eccitati nell&#8217;annunciarvi che <a href="http://www.feedmyapp.com">Feedmyapp</a> è stata comprata da <a href="http://www.onclickltd.com/">OnClick Solutions ltd</a>!</p>

<p>Feedmyapp è nata 3 anni fa come esperimento ed ha avuto successo ben oltre ogni nostra aspettativa, adesso passa di mano e continua la corsa! Crescerà ancora, sono previsti cambiamenti interessanti e nuove eccitanti funzionalità che renderanno il servizio sempre migliore&#8230; continuate a prendere la vostra <strong>daily web 2.0 dose</strong>! </p>

<p>Non ci resta che augurare buona fortuna a Neran, il nuovo manager di Feedmyapp, e ringraziare tutti per averci seguito con grande passione.
Vogliamo inoltre ringraziare gli sponsor che hanno creduto in Feedmyapp ed i manager di tutte le edizioni che con il loro lavoro hanno contribuito a farci conoscere nel mondo.  </p>

<p>Per noi di <a href="http://www.extendi.it">Extendi</a> è il momento di dedicarsi a qualcosa di diverso&#8230; Stay tuned!</p>
<img src="http://feeds.feedburner.com/~r/rails-on-the-road/~4/Ub9GGRJi4Z8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.extendi.it/ruby-on-rails/index.php/2010/09/20/feedmyapp-e-stata-comprata-da-onclick-solutions-ltd/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.extendi.it/ruby-on-rails/index.php/2010/09/20/feedmyapp-e-stata-comprata-da-onclick-solutions-ltd/</feedburner:origLink></item>
		<item>
		<title>Rails3 e fleximage</title>
		<link>http://feedproxy.google.com/~r/rails-on-the-road/~3/8M2e9Sh-mAY/</link>
		<comments>http://www.extendi.it/ruby-on-rails/index.php/2010/07/16/rails3-e-fleximage/#comments</comments>
		<pubDate>Fri, 16 Jul 2010 08:33:57 +0000</pubDate>
		<dc:creator>duccio</dc:creator>
		
		<category><![CDATA[Rails3]]></category>

		<category><![CDATA[plugin]]></category>

		<guid isPermaLink="false">http://www.extendi.it/ruby-on-rails/?p=1037</guid>
		<description><![CDATA[Ho provato ad installare la gemma con rails3 ma non ha funzionato, il problema è nel template &#8220;.flexi&#8221;. La soluzione più veloce è quella di spostare dal template flexi al controllore, le operazioni sulle immagini  e renderizzare con il send_data. Ma se non volete sporcare l&#8217;azione del controllore, allora provate a scaricare la fork [...]]]></description>
			<content:encoded><![CDATA[<p>Ho provato ad installare la gemma con rails3 ma non ha funzionato, il problema è nel template &#8220;.flexi&#8221;. La soluzione più veloce è quella di spostare dal template flexi al controllore, le operazioni sulle immagini  e renderizzare con il <strong>send_data</strong>. Ma se non volete <em>sporcare</em> l&#8217;azione del controllore, allora provate a scaricare la <a href="http://github.com/giovannelli/fleximage">fork</a> del progetto di <a href="http://wiki.github.com/Squeegy/fleximage">Squeegy</a>. </p>

<p>Praticamente ho solo ridefinito il template per il render in rails3:</p>

<pre class="textmate-source"><span class='linenum'>    1</span> <span class="source source_ruby source_ruby_rails"><span class="meta meta_module meta_module_ruby"><span class="keyword keyword_control keyword_control_module keyword_control_module_ruby">module</span> <span class="entity entity_name entity_name_type entity_name_type_module entity_name_type_module_ruby">ActionView</span></span>
<span class='linenum'>    2</span> <span class="meta meta_module meta_module_ruby">  <span class="keyword keyword_control keyword_control_module keyword_control_module_ruby">module</span> <span class="entity entity_name entity_name_type entity_name_type_module entity_name_type_module_ruby">TemplateHandlers</span></span>
<span class='linenum'>    3</span> <span class="meta meta_class meta_class_ruby">    <span class="keyword keyword_control keyword_control_class keyword_control_class_ruby">class</span> <span class="entity entity_name entity_name_type entity_name_type_class entity_name_type_class_ruby">Rails3View<span class="entity entity_other entity_other_inherited-class entity_other_inherited-class_ruby"> <span class="punctuation punctuation_separator punctuation_separator_inheritance punctuation_separator_inheritance_ruby">&lt;</span> TemplateHandler</span></span></span>
<span class='linenum'>    4</span>       <span class="keyword keyword_other keyword_other_special-method keyword_other_special-method_ruby">include</span> <span class="variable variable_other variable_other_constant variable_other_constant_ruby">Compilable</span>
<span class='linenum'>    5</span> <span class="meta meta_class meta_class_ruby">      <span class="keyword keyword_control keyword_control_class keyword_control_class_ruby">class</span> <span class="entity entity_name entity_name_type entity_name_type_class entity_name_type_class_ruby">TemplateDidNotReturnImage<span class="entity entity_other entity_other_inherited-class entity_other_inherited-class_ruby"> <span class="punctuation punctuation_separator punctuation_separator_inheritance punctuation_separator_inheritance_ruby">&lt;</span> RuntimeError</span></span></span> <span class="comment comment_line comment_line_number-sign comment_line_number-sign_ruby"><span class="punctuation punctuation_definition punctuation_definition_comment punctuation_definition_comment_ruby">#</span>:nodoc:
</span><span class='linenum'>    6</span>       <span class="keyword keyword_control keyword_control_ruby">end</span>
<span class='linenum'>    7</span> 
<span class='linenum'>    8</span>       <span class="meta meta_function meta_function_method meta_function_method_with-arguments meta_function_method_with-arguments_ruby"><span class="keyword keyword_control keyword_control_def keyword_control_def_ruby">def</span> <span class="entity entity_name entity_name_function entity_name_function_ruby">compile</span><span class="punctuation punctuation_definition punctuation_definition_parameters punctuation_definition_parameters_ruby">(</span><span class="variable variable_parameter variable_parameter_function variable_parameter_function_ruby">template</span><span class="punctuation punctuation_definition punctuation_definition_parameters punctuation_definition_parameters_ruby">)</span></span>
<span class='linenum'>    9</span>         <span class="string string_unquoted string_unquoted_heredoc string_unquoted_heredoc_ruby"><span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_ruby">&lt;&lt;-CODE</span>
<span class='linenum'>   10</span>         @template_format = :flexi
<span class='linenum'>   11</span>         controller.response.content_type ||= Mime::JPG    
<span class='linenum'>   12</span>         result = <span class="source source_ruby source_ruby_embedded source_ruby_embedded_source"><span class="punctuation punctuation_section punctuation_section_embedded punctuation_section_embedded_ruby">#{</span>template<span class="punctuation punctuation_separator punctuation_separator_method punctuation_separator_method_ruby">.</span>source<span class="punctuation punctuation_section punctuation_section_embedded punctuation_section_embedded_ruby">}</span></span>
<span class='linenum'>   13</span>         requested_format = (params[:format] || :jpg).to_sym
<span class='linenum'>   14</span>         begin
<span class='linenum'>   15</span>           # Raise an error if object returned from template is not an image record
<span class='linenum'>   16</span>           unless result.class.include?(Fleximage::Model::InstanceMethods)
<span class='linenum'>   17</span>             raise TemplateDidNotReturnImage, ".flexi template was expected to return a model instance that acts_as_fleximage, but got an instance of instead."
<span class='linenum'>   18</span>           end
<span class='linenum'>   19</span>           # Figure out the proper format
<span class='linenum'>   20</span>           raise 'Image must be requested with an image type format.  jpg, gif and png only are supported.' unless [:jpg, :gif, :png].include?(requested_format)
<span class='linenum'>   21</span>           result.output_image(:format =&gt; requested_format)
<span class='linenum'>   22</span>         rescue Exception =&gt; e
<span class='linenum'>   23</span>           e
<span class='linenum'>   24</span>         end
<span class='linenum'>   25</span> <span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_ruby">        CODE</span></span>
<span class='linenum'>   26</span>       <span class="keyword keyword_control keyword_control_ruby">ensure</span>
<span class='linenum'>   27</span>         <span class="support support_class support_class_ruby">GC</span><span class="punctuation punctuation_separator punctuation_separator_method punctuation_separator_method_ruby">.</span>start
<span class='linenum'>   28</span>       <span class="keyword keyword_control keyword_control_ruby">end</span>
<span class='linenum'>   29</span>     <span class="keyword keyword_control keyword_control_ruby">end</span>
<span class='linenum'>   30</span>   <span class="keyword keyword_control keyword_control_ruby">end</span>
<span class='linenum'>   31</span> <span class="keyword keyword_control keyword_control_ruby">end</span></span></pre>

<p>C&#8217;era anche un piccolo problema nell&#8217;<strong>image_file_url</strong> con il formato del&#8217;url, così in <strong>model.rb</strong> ho aggiunto <strong>file = open(URI.parse(URI.encode(file_url)))</strong>  per evitare il problema.</p>
<img src="http://feeds.feedburner.com/~r/rails-on-the-road/~4/8M2e9Sh-mAY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.extendi.it/ruby-on-rails/index.php/2010/07/16/rails3-e-fleximage/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.extendi.it/ruby-on-rails/index.php/2010/07/16/rails3-e-fleximage/</feedburner:origLink></item>
		<item>
		<title>will_paginate e Rails3</title>
		<link>http://feedproxy.google.com/~r/rails-on-the-road/~3/4ZO9DgLVipY/</link>
		<comments>http://www.extendi.it/ruby-on-rails/index.php/2010/07/13/will_paginate-e-rails3/#comments</comments>
		<pubDate>Tue, 13 Jul 2010 12:06:22 +0000</pubDate>
		<dc:creator>matte</dc:creator>
		
		<category><![CDATA[Configurazioni]]></category>

		<category><![CDATA[Rails3]]></category>

		<category><![CDATA[plugin]]></category>

		<guid isPermaLink="false">http://www.extendi.it/ruby-on-rails/?p=1033</guid>
		<description><![CDATA[Sicuramente avrete iniziato a provare Ruby on Rails 3. Per paginare i nostri record agevolmente possiamo usare il plugin will_paginate.

Per installarlo basta aggiungere al file Gemfile la seguente riga di codice in modo da prendere il codice del branch per Rails 3:

    1 gem 'will_paginate', :git =&#62; 'git://github.com/mislav/will_paginate.git', :branch =&#62; "rails3" 
]]></description>
			<content:encoded><![CDATA[<p>Sicuramente avrete iniziato a provare <a href="http://weblog.rubyonrails.org/2010/6/8/rails-3-0-beta-4-now-rc-in-days">Ruby on Rails 3</a>. Per paginare i nostri record agevolmente possiamo usare il plugin <a href="http://github.com/mislav/will_paginate">will_paginate</a>.</p>

<p>Per installarlo basta aggiungere al file <strong>Gemfile</strong> la seguente riga di codice in modo da prendere il codice del branch per Rails 3:</p>

<pre class="textmate-source"><span class='linenum'>    1</span> <span class="source source_ruby"><span class="meta meta_require meta_require_ruby"><span class="keyword keyword_other keyword_other_special-method keyword_other_special-method_ruby">gem</span> <span class="string string_quoted string_quoted_single string_quoted_single_ruby"><span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_ruby">'</span>will_paginate<span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_ruby">'</span></span><span class="punctuation punctuation_separator punctuation_separator_object punctuation_separator_object_ruby">,</span> <span class="constant constant_other constant_other_symbol constant_other_symbol_ruby"><span class="punctuation punctuation_definition punctuation_definition_constant punctuation_definition_constant_ruby">:</span>git</span> <span class="punctuation punctuation_separator punctuation_separator_key-value">=&gt;</span> <span class="string string_quoted string_quoted_single string_quoted_single_ruby"><span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_ruby">'</span>git://github.com/mislav/will_paginate.git<span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_ruby">'</span></span><span class="punctuation punctuation_separator punctuation_separator_object punctuation_separator_object_ruby">,</span> <span class="constant constant_other constant_other_symbol constant_other_symbol_ruby"><span class="punctuation punctuation_definition punctuation_definition_constant punctuation_definition_constant_ruby">:</span>branch</span> <span class="punctuation punctuation_separator punctuation_separator_key-value">=&gt;</span> <span class="string string_quoted string_quoted_double string_quoted_double_ruby"><span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_ruby">"</span>rails3<span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_ruby">"</span></span> </span></span></pre>
<img src="http://feeds.feedburner.com/~r/rails-on-the-road/~4/4ZO9DgLVipY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.extendi.it/ruby-on-rails/index.php/2010/07/13/will_paginate-e-rails3/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.extendi.it/ruby-on-rails/index.php/2010/07/13/will_paginate-e-rails3/</feedburner:origLink></item>
		<item>
		<title>Nested Layout</title>
		<link>http://feedproxy.google.com/~r/rails-on-the-road/~3/emAF3_m5opE/</link>
		<comments>http://www.extendi.it/ruby-on-rails/index.php/2010/04/01/nested-layout/#comments</comments>
		<pubDate>Thu, 01 Apr 2010 17:24:40 +0000</pubDate>
		<dc:creator>duccio</dc:creator>
		
		<category><![CDATA[Rails Snippet]]></category>

		<guid isPermaLink="false">http://www.extendi.it/ruby-on-rails/?p=1024</guid>
		<description><![CDATA[Se volete usare un layout dentro un altro layout potete utilizzare il plugin nested_layout che con l&#8217;helper  inside_layout, vi consente di specificare il template in cui includere il contenuto del blocco successivo, vediamo un esempio: 

    1 &#60;% inside_layout 'site' do -%&#62;
    2     &#60;div [...]]]></description>
			<content:encoded><![CDATA[<p>Se volete usare un layout dentro un altro layout potete utilizzare il plugin <a href="http://github.com/radar/nested-layouts">nested_layout</a> che con l&#8217;helper  <strong>inside_layout</strong>, vi consente di specificare il template in cui includere il contenuto del blocco successivo, vediamo un esempio: </p>

<pre class="textmate-source"><span class='linenum'>    1</span> <span class="text text_html text_html_ruby"><span class="source source_ruby source_ruby_rails source_ruby_rails_embedded source_ruby_rails_embedded_html"><span class="punctuation punctuation_section punctuation_section_embedded punctuation_section_embedded_ruby">&lt;%</span> inside_layout <span class="string string_quoted string_quoted_single string_quoted_single_ruby"><span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_ruby">'</span>site<span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_ruby">'</span></span> <span class="keyword keyword_control keyword_control_start-block keyword_control_start-block_ruby">do </span><span class="punctuation punctuation_section punctuation_section_embedded punctuation_section_embedded_ruby">-%&gt;</span></span>
<span class='linenum'>    2</span>     <span class="meta meta_tag meta_tag_block meta_tag_block_any meta_tag_block_any_html"><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_begin punctuation_definition_tag_begin_html">&lt;</span><span class="entity entity_name entity_name_tag entity_name_tag_block entity_name_tag_block_any entity_name_tag_block_any_html">div</span> <span class="entity entity_other entity_other_attribute-name entity_other_attribute-name_html">class</span>=<span class="string string_quoted string_quoted_double string_quoted_double_html"><span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_html">"</span>hello<span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_html">"</span></span><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_end punctuation_definition_tag_end_html">&gt;</span></span>
<span class='linenum'>    3</span>       <span class="meta meta_tag meta_tag_block meta_tag_block_any meta_tag_block_any_html"><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_begin punctuation_definition_tag_begin_html">&lt;</span><span class="entity entity_name entity_name_tag entity_name_tag_block entity_name_tag_block_any entity_name_tag_block_any_html">h1</span><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_end punctuation_definition_tag_end_html">&gt;</span></span>Ciao<span class="meta meta_tag meta_tag_block meta_tag_block_any meta_tag_block_any_html"><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_begin punctuation_definition_tag_begin_html">&lt;/</span><span class="entity entity_name entity_name_tag entity_name_tag_block entity_name_tag_block_any entity_name_tag_block_any_html">h1</span><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_end punctuation_definition_tag_end_html">&gt;</span></span>
<span class='linenum'>    4</span>       <span class="source source_ruby source_ruby_rails source_ruby_rails_embedded source_ruby_rails_embedded_html"><span class="punctuation punctuation_section punctuation_section_embedded punctuation_section_embedded_ruby">&lt;%=</span> <span class="keyword keyword_control keyword_control_pseudo-method keyword_control_pseudo-method_ruby">yield</span> <span class="punctuation punctuation_section punctuation_section_embedded punctuation_section_embedded_ruby">%&gt;</span></span>
<span class='linenum'>    5</span>     <span class="meta meta_tag meta_tag_block meta_tag_block_any meta_tag_block_any_html"><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_begin punctuation_definition_tag_begin_html">&lt;/</span><span class="entity entity_name entity_name_tag entity_name_tag_block entity_name_tag_block_any entity_name_tag_block_any_html">div</span><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_end punctuation_definition_tag_end_html">&gt;</span></span>
<span class='linenum'>    6</span> <span class="source source_ruby source_ruby_rails source_ruby_rails_embedded source_ruby_rails_embedded_html"><span class="punctuation punctuation_section punctuation_section_embedded punctuation_section_embedded_ruby">&lt;%</span> <span class="keyword keyword_control keyword_control_ruby">end</span> <span class="punctuation punctuation_section punctuation_section_embedded punctuation_section_embedded_ruby">-%&gt;</span></span></span></pre>

<p>Questa è una soluzione elegante e funzionale, ma se volete qualcosa di più &#8220;artigianale&#8221; vi fate il metodo <strong>inside_layout</strong> nell&#8217;application helper e lo usate se il layout che state facendo deve ereditare un wrapper esterno:</p>

<pre class="textmate-source"><span class='linenum'>    1</span> <span class="source source_ruby source_ruby_rails"><span class="meta meta_rails meta_rails_helper">  <span class="meta meta_function meta_function_method meta_function_method_with-arguments meta_function_method_with-arguments_ruby"><span class="keyword keyword_control keyword_control_def keyword_control_def_ruby">def</span> <span class="entity entity_name entity_name_function entity_name_function_ruby">inside_layout</span><span class="punctuation punctuation_definition punctuation_definition_parameters punctuation_definition_parameters_ruby">(</span><span class="variable variable_parameter variable_parameter_function variable_parameter_function_ruby">layout</span><span class="punctuation punctuation_definition punctuation_definition_parameters punctuation_definition_parameters_ruby">)</span></span>
<span class='linenum'>    2</span>     <span class="variable variable_other variable_other_readwrite variable_other_readwrite_instance variable_other_readwrite_instance_ruby"><span class="punctuation punctuation_definition punctuation_definition_variable punctuation_definition_variable_ruby">@</span>content_for_layout</span> <span class="keyword keyword_operator keyword_operator_assignment keyword_operator_assignment_ruby">=</span> <span class="variable variable_language variable_language_ruby">self</span><span class="punctuation punctuation_separator punctuation_separator_method punctuation_separator_method_ruby">.</span>output_buffer
<span class='linenum'>    3</span>     <span class="variable variable_language variable_language_ruby">self</span><span class="punctuation punctuation_separator punctuation_separator_method punctuation_separator_method_ruby">.</span>output_buffer <span class="keyword keyword_operator keyword_operator_assignment keyword_operator_assignment_ruby">=</span> <span class="support support_function support_function_actionpack support_function_actionpack_rails">render</span><span class="punctuation punctuation_section punctuation_section_function punctuation_section_function_ruby">(</span><span class="constant constant_other constant_other_symbol constant_other_symbol_ruby"><span class="punctuation punctuation_definition punctuation_definition_constant punctuation_definition_constant_ruby">:</span>file</span> <span class="punctuation punctuation_separator punctuation_separator_key-value">=&gt;</span> <span class="string string_quoted string_quoted_double string_quoted_double_ruby"><span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_ruby">"</span>layouts/<span class="source source_ruby source_ruby_embedded source_ruby_embedded_source"><span class="punctuation punctuation_section punctuation_section_embedded punctuation_section_embedded_ruby">#{</span>layout<span class="punctuation punctuation_section punctuation_section_embedded punctuation_section_embedded_ruby">}</span></span><span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_ruby">"</span></span><span class="punctuation punctuation_section punctuation_section_function punctuation_section_function_ruby">)</span>
<span class='linenum'>    4</span>   <span class="keyword keyword_control keyword_control_ruby">end</span></span></span></pre>

<p>E nel vostro layout lo usate <strong>insede_layout</strong> specificando il nome del layout in cui includere i contenuti:</p>

<pre class="textmate-source"><span class='linenum'>    1</span> <span class="text text_html text_html_ruby"><span class="source source_ruby source_ruby_rails source_ruby_rails_embedded source_ruby_rails_embedded_html"><span class="punctuation punctuation_section punctuation_section_embedded punctuation_section_embedded_ruby">&lt;%</span> content_for <span class="constant constant_other constant_other_symbol constant_other_symbol_ruby"><span class="punctuation punctuation_definition punctuation_definition_constant punctuation_definition_constant_ruby">:</span>header</span> <span class="keyword keyword_control keyword_control_start-block keyword_control_start-block_ruby">do  </span><span class="punctuation punctuation_section punctuation_section_embedded punctuation_section_embedded_ruby">%&gt;</span></span>
<span class='linenum'>    2</span> <span class="meta meta_tag meta_tag_block meta_tag_block_any meta_tag_block_any_html"><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_begin punctuation_definition_tag_begin_html">&lt;</span><span class="entity entity_name entity_name_tag entity_name_tag_block entity_name_tag_block_any entity_name_tag_block_any_html">ul</span> <span class="entity entity_other entity_other_attribute-name entity_other_attribute-name_html">class</span>=<span class="string string_quoted string_quoted_double string_quoted_double_html"><span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_html">"</span>menu<span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_html">"</span></span><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_end punctuation_definition_tag_end_html">&gt;</span></span>
<span class='linenum'>    3</span>   <span class="meta meta_tag meta_tag_inline meta_tag_inline_any meta_tag_inline_any_html"><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_begin punctuation_definition_tag_begin_html">&lt;</span><span class="entity entity_name entity_name_tag entity_name_tag_inline entity_name_tag_inline_any entity_name_tag_inline_any_html">li</span><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_end punctuation_definition_tag_end_html">&gt;</span></span>menu 1<span class="meta meta_tag meta_tag_inline meta_tag_inline_any meta_tag_inline_any_html"><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_begin punctuation_definition_tag_begin_html">&lt;/</span><span class="entity entity_name entity_name_tag entity_name_tag_inline entity_name_tag_inline_any entity_name_tag_inline_any_html">li</span><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_end punctuation_definition_tag_end_html">&gt;</span></span>
<span class='linenum'>    4</span>   <span class="meta meta_tag meta_tag_inline meta_tag_inline_any meta_tag_inline_any_html"><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_begin punctuation_definition_tag_begin_html">&lt;</span><span class="entity entity_name entity_name_tag entity_name_tag_inline entity_name_tag_inline_any entity_name_tag_inline_any_html">li</span><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_end punctuation_definition_tag_end_html">&gt;</span></span>menu 2<span class="meta meta_tag meta_tag_inline meta_tag_inline_any meta_tag_inline_any_html"><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_begin punctuation_definition_tag_begin_html">&lt;/</span><span class="entity entity_name entity_name_tag entity_name_tag_inline entity_name_tag_inline_any entity_name_tag_inline_any_html">li</span><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_end punctuation_definition_tag_end_html">&gt;</span></span>
<span class='linenum'>    5</span>   <span class="meta meta_tag meta_tag_inline meta_tag_inline_any meta_tag_inline_any_html"><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_begin punctuation_definition_tag_begin_html">&lt;</span><span class="entity entity_name entity_name_tag entity_name_tag_inline entity_name_tag_inline_any entity_name_tag_inline_any_html">li</span><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_end punctuation_definition_tag_end_html">&gt;</span></span>menu 3<span class="meta meta_tag meta_tag_inline meta_tag_inline_any meta_tag_inline_any_html"><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_begin punctuation_definition_tag_begin_html">&lt;/</span><span class="entity entity_name entity_name_tag entity_name_tag_inline entity_name_tag_inline_any entity_name_tag_inline_any_html">li</span><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_end punctuation_definition_tag_end_html">&gt;</span></span>
<span class='linenum'>    6</span>   <span class="meta meta_tag meta_tag_inline meta_tag_inline_any meta_tag_inline_any_html"><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_begin punctuation_definition_tag_begin_html">&lt;</span><span class="entity entity_name entity_name_tag entity_name_tag_inline entity_name_tag_inline_any entity_name_tag_inline_any_html">li</span><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_end punctuation_definition_tag_end_html">&gt;</span></span>menu 4<span class="meta meta_tag meta_tag_inline meta_tag_inline_any meta_tag_inline_any_html"><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_begin punctuation_definition_tag_begin_html">&lt;/</span><span class="entity entity_name entity_name_tag entity_name_tag_inline entity_name_tag_inline_any entity_name_tag_inline_any_html">li</span><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_end punctuation_definition_tag_end_html">&gt;</span></span>
<span class='linenum'>    7</span> <span class="meta meta_tag meta_tag_block meta_tag_block_any meta_tag_block_any_html"><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_begin punctuation_definition_tag_begin_html">&lt;/</span><span class="entity entity_name entity_name_tag entity_name_tag_block entity_name_tag_block_any entity_name_tag_block_any_html">ul</span><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_end punctuation_definition_tag_end_html">&gt;</span></span>
<span class='linenum'>    8</span> <span class="source source_ruby source_ruby_rails source_ruby_rails_embedded source_ruby_rails_embedded_html"><span class="punctuation punctuation_section punctuation_section_embedded punctuation_section_embedded_ruby">&lt;%</span> <span class="keyword keyword_control keyword_control_ruby">end</span> <span class="punctuation punctuation_section punctuation_section_embedded punctuation_section_embedded_ruby">%&gt;</span></span>
<span class='linenum'>    9</span> 
<span class='linenum'>   10</span> <span class="meta meta_tag meta_tag_block meta_tag_block_any meta_tag_block_any_html"><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_begin punctuation_definition_tag_begin_html">&lt;</span><span class="entity entity_name entity_name_tag entity_name_tag_block entity_name_tag_block_any entity_name_tag_block_any_html">div</span> <span class="entity entity_other entity_other_attribute-name entity_other_attribute-name_html">class</span>=<span class="string string_quoted string_quoted_double string_quoted_double_html"><span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_html">"</span>lcol<span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_html">"</span></span><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_end punctuation_definition_tag_end_html">&gt;</span></span>
<span class='linenum'>   11</span>   <span class="source source_ruby source_ruby_rails source_ruby_rails_embedded source_ruby_rails_embedded_html"><span class="punctuation punctuation_section punctuation_section_embedded punctuation_section_embedded_ruby">&lt;%=</span> <span class="keyword keyword_control keyword_control_pseudo-method keyword_control_pseudo-method_ruby">yield</span> <span class="constant constant_other constant_other_symbol constant_other_symbol_ruby"><span class="punctuation punctuation_definition punctuation_definition_constant punctuation_definition_constant_ruby">:</span>sidebar</span> <span class="punctuation punctuation_section punctuation_section_embedded punctuation_section_embedded_ruby">%&gt;</span></span>
<span class='linenum'>   12</span> <span class="meta meta_tag meta_tag_block meta_tag_block_any meta_tag_block_any_html"><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_begin punctuation_definition_tag_begin_html">&lt;/</span><span class="entity entity_name entity_name_tag entity_name_tag_block entity_name_tag_block_any entity_name_tag_block_any_html">div</span><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_end punctuation_definition_tag_end_html">&gt;</span></span>
<span class='linenum'>   13</span> 
<span class='linenum'>   14</span> <span class="meta meta_tag meta_tag_block meta_tag_block_any meta_tag_block_any_html"><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_begin punctuation_definition_tag_begin_html">&lt;</span><span class="entity entity_name entity_name_tag entity_name_tag_block entity_name_tag_block_any entity_name_tag_block_any_html">div</span> <span class="entity entity_other entity_other_attribute-name entity_other_attribute-name_html">class</span>=<span class="string string_quoted string_quoted_double string_quoted_double_html"><span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_html">"</span>content<span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_html">"</span></span><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_end punctuation_definition_tag_end_html">&gt;</span></span>
<span class='linenum'>   15</span>   <span class="source source_ruby source_ruby_rails source_ruby_rails_embedded source_ruby_rails_embedded_html"><span class="punctuation punctuation_section punctuation_section_embedded punctuation_section_embedded_ruby">&lt;%=</span> <span class="keyword keyword_control keyword_control_pseudo-method keyword_control_pseudo-method_ruby">yield</span> <span class="punctuation punctuation_section punctuation_section_embedded punctuation_section_embedded_ruby">%&gt;</span></span>
<span class='linenum'>   16</span> <span class="meta meta_tag meta_tag_block meta_tag_block_any meta_tag_block_any_html"><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_begin punctuation_definition_tag_begin_html">&lt;/</span><span class="entity entity_name entity_name_tag entity_name_tag_block entity_name_tag_block_any entity_name_tag_block_any_html">div</span><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_end punctuation_definition_tag_end_html">&gt;</span></span>
<span class='linenum'>   17</span> 
<span class='linenum'>   18</span> <span class="source source_ruby source_ruby_rails source_ruby_rails_embedded source_ruby_rails_embedded_html"><span class="punctuation punctuation_section punctuation_section_embedded punctuation_section_embedded_ruby">&lt;%</span> inside_layout <span class="string string_quoted string_quoted_single string_quoted_single_ruby"><span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_ruby">'</span>site<span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_ruby">'</span></span> <span class="punctuation punctuation_section punctuation_section_embedded punctuation_section_embedded_ruby">%&gt;</span></span></span></pre>

<p>Il layout &#8220;site.erb&#8221; sarà qualcosa di questo tipo:</p>

<pre class="textmate-source"><span class='linenum'>    1</span> <span class="text text_html text_html_ruby"><span class="meta meta_tag meta_tag_sgml meta_tag_sgml_html"><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_html">&lt;!</span><span class="meta meta_tag meta_tag_sgml meta_tag_sgml_doctype meta_tag_sgml_doctype_html"><span class="entity entity_name entity_name_tag entity_name_tag_doctype entity_name_tag_doctype_html">DOCTYPE</span> html PUBLIC <span class="string string_quoted string_quoted_double string_quoted_double_doctype string_quoted_double_doctype_identifiers-and-DTDs string_quoted_double_doctype_identifiers-and-DTDs_html">"-//W3C//DTD XHTML 1.0 Transitional//EN"</span> <span class="string string_quoted string_quoted_double string_quoted_double_doctype string_quoted_double_doctype_identifiers-and-DTDs string_quoted_double_doctype_identifiers-and-DTDs_html">"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"</span></span><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_html">&gt;</span></span>
<span class='linenum'>    2</span> <span class="meta meta_tag meta_tag_structure meta_tag_structure_any meta_tag_structure_any_html"><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_html">&lt;</span><span class="entity entity_name entity_name_tag entity_name_tag_structure entity_name_tag_structure_any entity_name_tag_structure_any_html">html</span> <span class="entity entity_other entity_other_attribute-name entity_other_attribute-name_html">xmlns</span>=<span class="string string_quoted string_quoted_double string_quoted_double_html"><span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_html">"</span>http://www.w3.org/1999/xhtml<span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_html">"</span></span><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_html">&gt;</span></span>
<span class='linenum'>    3</span> <span class="meta meta_tag meta_tag_structure meta_tag_structure_any meta_tag_structure_any_html"><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_html">&lt;</span><span class="entity entity_name entity_name_tag entity_name_tag_structure entity_name_tag_structure_any entity_name_tag_structure_any_html">head</span><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_html">&gt;</span></span>
<span class='linenum'>    4</span>   <span class="meta meta_tag meta_tag_inline meta_tag_inline_any meta_tag_inline_any_html"><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_begin punctuation_definition_tag_begin_html">&lt;</span><span class="entity entity_name entity_name_tag entity_name_tag_inline entity_name_tag_inline_any entity_name_tag_inline_any_html">title</span><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_end punctuation_definition_tag_end_html">&gt;</span></span>Title<span class="meta meta_tag meta_tag_inline meta_tag_inline_any meta_tag_inline_any_html"><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_begin punctuation_definition_tag_begin_html">&lt;/</span><span class="entity entity_name entity_name_tag entity_name_tag_inline entity_name_tag_inline_any entity_name_tag_inline_any_html">title</span><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_end punctuation_definition_tag_end_html">&gt;</span></span>
<span class='linenum'>    5</span>   <span class="meta meta_tag meta_tag_inline meta_tag_inline_any meta_tag_inline_any_html"><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_begin punctuation_definition_tag_begin_html">&lt;</span><span class="entity entity_name entity_name_tag entity_name_tag_inline entity_name_tag_inline_any entity_name_tag_inline_any_html">meta</span> <span class="entity entity_other entity_other_attribute-name entity_other_attribute-name_html">http-equiv</span>=<span class="string string_quoted string_quoted_double string_quoted_double_html"><span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_html">"</span>Content-Type<span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_html">"</span></span> <span class="entity entity_other entity_other_attribute-name entity_other_attribute-name_html">content</span>=<span class="string string_quoted string_quoted_double string_quoted_double_html"><span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_html">"</span>text/html; charset=utf-8<span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_html">"</span></span><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_end punctuation_definition_tag_end_html"> /&gt;</span></span>
<span class='linenum'>    6</span>   <span class="meta meta_tag meta_tag_inline meta_tag_inline_any meta_tag_inline_any_html"><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_begin punctuation_definition_tag_begin_html">&lt;</span><span class="entity entity_name entity_name_tag entity_name_tag_inline entity_name_tag_inline_any entity_name_tag_inline_any_html">meta</span> <span class="entity entity_other entity_other_attribute-name entity_other_attribute-name_html">name</span>=<span class="string string_quoted string_quoted_double string_quoted_double_html"><span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_html">"</span>description<span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_html">"</span></span> <span class="entity entity_other entity_other_attribute-name entity_other_attribute-name_html">content</span>=<span class="string string_quoted string_quoted_double string_quoted_double_html"><span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_html">"</span><span class="source source_ruby source_ruby_embedded source_ruby_embedded_html"><span class="punctuation punctuation_section punctuation_section_embedded punctuation_section_embedded_ruby">&lt;%=</span> <span class="variable variable_other variable_other_readwrite variable_other_readwrite_instance variable_other_readwrite_instance_ruby"><span class="punctuation punctuation_definition punctuation_definition_variable punctuation_definition_variable_ruby">@</span>page_desc</span> <span class="punctuation punctuation_section punctuation_section_embedded punctuation_section_embedded_ruby">%&gt;</span></span><span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_html">"</span></span><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_end punctuation_definition_tag_end_html"> /&gt;</span></span>
<span class='linenum'>    7</span>   <span class="meta meta_tag meta_tag_inline meta_tag_inline_any meta_tag_inline_any_html"><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_begin punctuation_definition_tag_begin_html">&lt;</span><span class="entity entity_name entity_name_tag entity_name_tag_inline entity_name_tag_inline_any entity_name_tag_inline_any_html">meta</span> <span class="entity entity_other entity_other_attribute-name entity_other_attribute-name_html">name</span>=<span class="string string_quoted string_quoted_double string_quoted_double_html"><span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_html">"</span>keywords<span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_html">"</span></span> <span class="entity entity_other entity_other_attribute-name entity_other_attribute-name_html">content</span>= <span class="string string_quoted string_quoted_double string_quoted_double_html"><span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_html">"</span><span class="source source_ruby source_ruby_embedded source_ruby_embedded_html"><span class="punctuation punctuation_section punctuation_section_embedded punctuation_section_embedded_ruby">&lt;%=</span> <span class="variable variable_other variable_other_readwrite variable_other_readwrite_instance variable_other_readwrite_instance_ruby"><span class="punctuation punctuation_definition punctuation_definition_variable punctuation_definition_variable_ruby">@</span>page_keyword</span> <span class="punctuation punctuation_section punctuation_section_embedded punctuation_section_embedded_ruby">%&gt;</span></span><span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_html">"</span></span><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_end punctuation_definition_tag_end_html"> /&gt;</span></span>
<span class='linenum'>    8</span>   <span class="source source_ruby source_ruby_rails source_ruby_rails_embedded source_ruby_rails_embedded_html"><span class="punctuation punctuation_section punctuation_section_embedded punctuation_section_embedded_ruby">&lt;%=</span> javascript_include_tag <span class="constant constant_other constant_other_symbol constant_other_symbol_ruby"><span class="punctuation punctuation_definition punctuation_definition_constant punctuation_definition_constant_ruby">:</span>defaults</span> <span class="punctuation punctuation_section punctuation_section_embedded punctuation_section_embedded_ruby">%&gt;</span></span>
<span class='linenum'>    9</span>   <span class="source source_ruby source_ruby_rails source_ruby_rails_embedded source_ruby_rails_embedded_html"><span class="punctuation punctuation_section punctuation_section_embedded punctuation_section_embedded_ruby">&lt;%=</span> <span class="keyword keyword_control keyword_control_pseudo-method keyword_control_pseudo-method_ruby">yield</span> <span class="constant constant_other constant_other_symbol constant_other_symbol_ruby"><span class="punctuation punctuation_definition punctuation_definition_constant punctuation_definition_constant_ruby">:</span>script</span> <span class="punctuation punctuation_section punctuation_section_embedded punctuation_section_embedded_ruby">%&gt;</span></span>
<span class='linenum'>   10</span> <span class="meta meta_tag meta_tag_structure meta_tag_structure_any meta_tag_structure_any_html"><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_html">&lt;/</span><span class="entity entity_name entity_name_tag entity_name_tag_structure entity_name_tag_structure_any entity_name_tag_structure_any_html">head</span><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_html">&gt;</span></span>
<span class='linenum'>   11</span> <span class="meta meta_tag meta_tag_structure meta_tag_structure_any meta_tag_structure_any_html"><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_html">&lt;</span><span class="entity entity_name entity_name_tag entity_name_tag_structure entity_name_tag_structure_any entity_name_tag_structure_any_html">body</span><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_html">&gt;</span></span>
<span class='linenum'>   12</span> <span class="meta meta_tag meta_tag_block meta_tag_block_any meta_tag_block_any_html"><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_begin punctuation_definition_tag_begin_html">&lt;</span><span class="entity entity_name entity_name_tag entity_name_tag_block entity_name_tag_block_any entity_name_tag_block_any_html">div</span> <span class="meta meta_attribute-with-value meta_attribute-with-value_id meta_attribute-with-value_id_html"><span class="entity entity_other entity_other_attribute-name entity_other_attribute-name_id entity_other_attribute-name_id_html">id</span><span class="punctuation punctuation_separator punctuation_separator_key-value punctuation_separator_key-value_html">=</span><span class="string string_quoted string_quoted_double string_quoted_double_html"><span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_html">"</span><span class="meta meta_toc-list meta_toc-list_id meta_toc-list_id_html">page</span><span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_html">"</span></span></span><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_end punctuation_definition_tag_end_html">&gt;</span></span>
<span class='linenum'>   13</span>   <span class="meta meta_tag meta_tag_block meta_tag_block_any meta_tag_block_any_html"><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_begin punctuation_definition_tag_begin_html">&lt;</span><span class="entity entity_name entity_name_tag entity_name_tag_block entity_name_tag_block_any entity_name_tag_block_any_html">div</span> <span class="meta meta_attribute-with-value meta_attribute-with-value_id meta_attribute-with-value_id_html"><span class="entity entity_other entity_other_attribute-name entity_other_attribute-name_id entity_other_attribute-name_id_html">id</span><span class="punctuation punctuation_separator punctuation_separator_key-value punctuation_separator_key-value_html">=</span><span class="string string_quoted string_quoted_double string_quoted_double_html"><span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_html">"</span><span class="meta meta_toc-list meta_toc-list_id meta_toc-list_id_html">header</span><span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_html">"</span></span></span><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_end punctuation_definition_tag_end_html">&gt;</span></span>
<span class='linenum'>   14</span>     <span class="meta meta_tag meta_tag_block meta_tag_block_any meta_tag_block_any_html"><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_begin punctuation_definition_tag_begin_html">&lt;</span><span class="entity entity_name entity_name_tag entity_name_tag_block entity_name_tag_block_any entity_name_tag_block_any_html">h1</span><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_end punctuation_definition_tag_end_html">&gt;</span></span>LOGO<span class="meta meta_tag meta_tag_block meta_tag_block_any meta_tag_block_any_html"><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_begin punctuation_definition_tag_begin_html">&lt;/</span><span class="entity entity_name entity_name_tag entity_name_tag_block entity_name_tag_block_any entity_name_tag_block_any_html">h1</span><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_end punctuation_definition_tag_end_html">&gt;</span></span> 
<span class='linenum'>   15</span> 
<span class='linenum'>   16</span>     <span class="meta meta_tag meta_tag_block meta_tag_block_any meta_tag_block_any_html"><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_begin punctuation_definition_tag_begin_html">&lt;</span><span class="entity entity_name entity_name_tag entity_name_tag_block entity_name_tag_block_any entity_name_tag_block_any_html">ul</span> <span class="entity entity_other entity_other_attribute-name entity_other_attribute-name_html">class</span>=<span class="string string_quoted string_quoted_double string_quoted_double_html"><span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_html">"</span>menu<span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_html">"</span></span><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_end punctuation_definition_tag_end_html">&gt;</span></span>
<span class='linenum'>   17</span>       <span class="meta meta_tag meta_tag_inline meta_tag_inline_any meta_tag_inline_any_html"><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_begin punctuation_definition_tag_begin_html">&lt;</span><span class="entity entity_name entity_name_tag entity_name_tag_inline entity_name_tag_inline_any entity_name_tag_inline_any_html">li</span><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_end punctuation_definition_tag_end_html">&gt;</span></span>menu 1<span class="meta meta_tag meta_tag_inline meta_tag_inline_any meta_tag_inline_any_html"><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_begin punctuation_definition_tag_begin_html">&lt;/</span><span class="entity entity_name entity_name_tag entity_name_tag_inline entity_name_tag_inline_any entity_name_tag_inline_any_html">li</span><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_end punctuation_definition_tag_end_html">&gt;</span></span>
<span class='linenum'>   18</span>       <span class="meta meta_tag meta_tag_inline meta_tag_inline_any meta_tag_inline_any_html"><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_begin punctuation_definition_tag_begin_html">&lt;</span><span class="entity entity_name entity_name_tag entity_name_tag_inline entity_name_tag_inline_any entity_name_tag_inline_any_html">li</span><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_end punctuation_definition_tag_end_html">&gt;</span></span>menu 2<span class="meta meta_tag meta_tag_inline meta_tag_inline_any meta_tag_inline_any_html"><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_begin punctuation_definition_tag_begin_html">&lt;/</span><span class="entity entity_name entity_name_tag entity_name_tag_inline entity_name_tag_inline_any entity_name_tag_inline_any_html">li</span><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_end punctuation_definition_tag_end_html">&gt;</span></span>
<span class='linenum'>   19</span>       <span class="meta meta_tag meta_tag_inline meta_tag_inline_any meta_tag_inline_any_html"><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_begin punctuation_definition_tag_begin_html">&lt;</span><span class="entity entity_name entity_name_tag entity_name_tag_inline entity_name_tag_inline_any entity_name_tag_inline_any_html">li</span><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_end punctuation_definition_tag_end_html">&gt;</span></span>menu 3<span class="meta meta_tag meta_tag_inline meta_tag_inline_any meta_tag_inline_any_html"><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_begin punctuation_definition_tag_begin_html">&lt;/</span><span class="entity entity_name entity_name_tag entity_name_tag_inline entity_name_tag_inline_any entity_name_tag_inline_any_html">li</span><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_end punctuation_definition_tag_end_html">&gt;</span></span>
<span class='linenum'>   20</span>       <span class="meta meta_tag meta_tag_inline meta_tag_inline_any meta_tag_inline_any_html"><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_begin punctuation_definition_tag_begin_html">&lt;</span><span class="entity entity_name entity_name_tag entity_name_tag_inline entity_name_tag_inline_any entity_name_tag_inline_any_html">li</span><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_end punctuation_definition_tag_end_html">&gt;</span></span>menu 4<span class="meta meta_tag meta_tag_inline meta_tag_inline_any meta_tag_inline_any_html"><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_begin punctuation_definition_tag_begin_html">&lt;/</span><span class="entity entity_name entity_name_tag entity_name_tag_inline entity_name_tag_inline_any entity_name_tag_inline_any_html">li</span><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_end punctuation_definition_tag_end_html">&gt;</span></span>
<span class='linenum'>   21</span>     <span class="meta meta_tag meta_tag_block meta_tag_block_any meta_tag_block_any_html"><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_begin punctuation_definition_tag_begin_html">&lt;/</span><span class="entity entity_name entity_name_tag entity_name_tag_block entity_name_tag_block_any entity_name_tag_block_any_html">ul</span><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_end punctuation_definition_tag_end_html">&gt;</span></span>
<span class='linenum'>   22</span>     <span class="source source_ruby source_ruby_rails source_ruby_rails_embedded source_ruby_rails_embedded_html"><span class="punctuation punctuation_section punctuation_section_embedded punctuation_section_embedded_ruby">&lt;%=</span> <span class="keyword keyword_control keyword_control_pseudo-method keyword_control_pseudo-method_ruby">yield</span> <span class="constant constant_other constant_other_symbol constant_other_symbol_ruby"><span class="punctuation punctuation_definition punctuation_definition_constant punctuation_definition_constant_ruby">:</span>header</span> <span class="punctuation punctuation_section punctuation_section_embedded punctuation_section_embedded_ruby">%&gt;</span></span>
<span class='linenum'>   23</span>   <span class="meta meta_tag meta_tag_block meta_tag_block_any meta_tag_block_any_html"><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_begin punctuation_definition_tag_begin_html">&lt;/</span><span class="entity entity_name entity_name_tag entity_name_tag_block entity_name_tag_block_any entity_name_tag_block_any_html">div</span><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_end punctuation_definition_tag_end_html">&gt;</span></span>
<span class='linenum'>   24</span>   
<span class='linenum'>   25</span>   <span class="meta meta_tag meta_tag_block meta_tag_block_any meta_tag_block_any_html"><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_begin punctuation_definition_tag_begin_html">&lt;</span><span class="entity entity_name entity_name_tag entity_name_tag_block entity_name_tag_block_any entity_name_tag_block_any_html">div</span> <span class="meta meta_attribute-with-value meta_attribute-with-value_id meta_attribute-with-value_id_html"><span class="entity entity_other entity_other_attribute-name entity_other_attribute-name_id entity_other_attribute-name_id_html">id</span><span class="punctuation punctuation_separator punctuation_separator_key-value punctuation_separator_key-value_html">=</span><span class="string string_quoted string_quoted_double string_quoted_double_html"><span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_html">"</span><span class="meta meta_toc-list meta_toc-list_id meta_toc-list_id_html">cont</span><span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_html">"</span></span></span><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_end punctuation_definition_tag_end_html">&gt;</span></span>
<span class='linenum'>   26</span>     <span class="source source_ruby source_ruby_rails source_ruby_rails_embedded source_ruby_rails_embedded_html"><span class="punctuation punctuation_section punctuation_section_embedded punctuation_section_embedded_ruby">&lt;%=</span> <span class="keyword keyword_control keyword_control_pseudo-method keyword_control_pseudo-method_ruby">yield</span> <span class="punctuation punctuation_section punctuation_section_embedded punctuation_section_embedded_ruby">%&gt;</span></span>
<span class='linenum'>   27</span>   <span class="meta meta_tag meta_tag_block meta_tag_block_any meta_tag_block_any_html"><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_begin punctuation_definition_tag_begin_html">&lt;/</span><span class="entity entity_name entity_name_tag entity_name_tag_block entity_name_tag_block_any entity_name_tag_block_any_html">div</span><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_end punctuation_definition_tag_end_html">&gt;</span></span>
<span class='linenum'>   28</span>   
<span class='linenum'>   29</span>   <span class="meta meta_tag meta_tag_block meta_tag_block_any meta_tag_block_any_html"><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_begin punctuation_definition_tag_begin_html">&lt;</span><span class="entity entity_name entity_name_tag entity_name_tag_block entity_name_tag_block_any entity_name_tag_block_any_html">div</span> <span class="meta meta_attribute-with-value meta_attribute-with-value_id meta_attribute-with-value_id_html"><span class="entity entity_other entity_other_attribute-name entity_other_attribute-name_id entity_other_attribute-name_id_html">id</span><span class="punctuation punctuation_separator punctuation_separator_key-value punctuation_separator_key-value_html">=</span><span class="string string_quoted string_quoted_double string_quoted_double_html"><span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_html">"</span><span class="meta meta_toc-list meta_toc-list_id meta_toc-list_id_html">footer</span><span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_html">"</span></span></span><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_end punctuation_definition_tag_end_html">&gt;</span></span>
<span class='linenum'>   30</span>     <span class="meta meta_tag meta_tag_block meta_tag_block_any meta_tag_block_any_html"><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_begin punctuation_definition_tag_begin_html">&lt;</span><span class="entity entity_name entity_name_tag entity_name_tag_block entity_name_tag_block_any entity_name_tag_block_any_html">ul</span> <span class="entity entity_other entity_other_attribute-name entity_other_attribute-name_html">class</span>=<span class="string string_quoted string_quoted_double string_quoted_double_html"><span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_html">"</span>menu<span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_html">"</span></span><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_end punctuation_definition_tag_end_html">&gt;</span></span>
<span class='linenum'>   31</span>       <span class="meta meta_tag meta_tag_inline meta_tag_inline_any meta_tag_inline_any_html"><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_begin punctuation_definition_tag_begin_html">&lt;</span><span class="entity entity_name entity_name_tag entity_name_tag_inline entity_name_tag_inline_any entity_name_tag_inline_any_html">li</span><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_end punctuation_definition_tag_end_html">&gt;</span></span>menu 1<span class="meta meta_tag meta_tag_inline meta_tag_inline_any meta_tag_inline_any_html"><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_begin punctuation_definition_tag_begin_html">&lt;/</span><span class="entity entity_name entity_name_tag entity_name_tag_inline entity_name_tag_inline_any entity_name_tag_inline_any_html">li</span><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_end punctuation_definition_tag_end_html">&gt;</span></span>
<span class='linenum'>   32</span>       <span class="meta meta_tag meta_tag_inline meta_tag_inline_any meta_tag_inline_any_html"><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_begin punctuation_definition_tag_begin_html">&lt;</span><span class="entity entity_name entity_name_tag entity_name_tag_inline entity_name_tag_inline_any entity_name_tag_inline_any_html">li</span><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_end punctuation_definition_tag_end_html">&gt;</span></span>menu 2<span class="meta meta_tag meta_tag_inline meta_tag_inline_any meta_tag_inline_any_html"><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_begin punctuation_definition_tag_begin_html">&lt;/</span><span class="entity entity_name entity_name_tag entity_name_tag_inline entity_name_tag_inline_any entity_name_tag_inline_any_html">li</span><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_end punctuation_definition_tag_end_html">&gt;</span></span>
<span class='linenum'>   33</span>       <span class="meta meta_tag meta_tag_inline meta_tag_inline_any meta_tag_inline_any_html"><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_begin punctuation_definition_tag_begin_html">&lt;</span><span class="entity entity_name entity_name_tag entity_name_tag_inline entity_name_tag_inline_any entity_name_tag_inline_any_html">li</span><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_end punctuation_definition_tag_end_html">&gt;</span></span>menu 3<span class="meta meta_tag meta_tag_inline meta_tag_inline_any meta_tag_inline_any_html"><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_begin punctuation_definition_tag_begin_html">&lt;/</span><span class="entity entity_name entity_name_tag entity_name_tag_inline entity_name_tag_inline_any entity_name_tag_inline_any_html">li</span><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_end punctuation_definition_tag_end_html">&gt;</span></span>
<span class='linenum'>   34</span>       <span class="meta meta_tag meta_tag_inline meta_tag_inline_any meta_tag_inline_any_html"><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_begin punctuation_definition_tag_begin_html">&lt;</span><span class="entity entity_name entity_name_tag entity_name_tag_inline entity_name_tag_inline_any entity_name_tag_inline_any_html">li</span><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_end punctuation_definition_tag_end_html">&gt;</span></span>menu 4<span class="meta meta_tag meta_tag_inline meta_tag_inline_any meta_tag_inline_any_html"><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_begin punctuation_definition_tag_begin_html">&lt;/</span><span class="entity entity_name entity_name_tag entity_name_tag_inline entity_name_tag_inline_any entity_name_tag_inline_any_html">li</span><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_end punctuation_definition_tag_end_html">&gt;</span></span>
<span class='linenum'>   35</span>     <span class="meta meta_tag meta_tag_block meta_tag_block_any meta_tag_block_any_html"><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_begin punctuation_definition_tag_begin_html">&lt;/</span><span class="entity entity_name entity_name_tag entity_name_tag_block entity_name_tag_block_any entity_name_tag_block_any_html">ul</span><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_end punctuation_definition_tag_end_html">&gt;</span></span>
<span class='linenum'>   36</span>   <span class="meta meta_tag meta_tag_block meta_tag_block_any meta_tag_block_any_html"><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_begin punctuation_definition_tag_begin_html">&lt;/</span><span class="entity entity_name entity_name_tag entity_name_tag_block entity_name_tag_block_any entity_name_tag_block_any_html">div</span><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_end punctuation_definition_tag_end_html">&gt;</span></span>
<span class='linenum'>   37</span> <span class="meta meta_tag meta_tag_block meta_tag_block_any meta_tag_block_any_html"><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_begin punctuation_definition_tag_begin_html">&lt;/</span><span class="entity entity_name entity_name_tag entity_name_tag_block entity_name_tag_block_any entity_name_tag_block_any_html">div</span><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_end punctuation_definition_tag_end_html">&gt;</span></span>
<span class='linenum'>   38</span> <span class="meta meta_tag meta_tag_structure meta_tag_structure_any meta_tag_structure_any_html"><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_html">&lt;/</span><span class="entity entity_name entity_name_tag entity_name_tag_structure entity_name_tag_structure_any entity_name_tag_structure_any_html">body</span><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_html">&gt;</span></span>
<span class='linenum'>   39</span> <span class="meta meta_tag meta_tag_structure meta_tag_structure_any meta_tag_structure_any_html"><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_html">&lt;/</span><span class="entity entity_name entity_name_tag entity_name_tag_structure entity_name_tag_structure_any entity_name_tag_structure_any_html">html</span><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_html">&gt;</span></span></span></pre>
<img src="http://feeds.feedburner.com/~r/rails-on-the-road/~4/emAF3_m5opE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.extendi.it/ruby-on-rails/index.php/2010/04/01/nested-layout/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.extendi.it/ruby-on-rails/index.php/2010/04/01/nested-layout/</feedburner:origLink></item>
		<item>
		<title>Princely: rails wrapper per Prince XML</title>
		<link>http://feedproxy.google.com/~r/rails-on-the-road/~3/W-4_VxqJJkY/</link>
		<comments>http://www.extendi.it/ruby-on-rails/index.php/2010/03/30/princely-rails-wrapper-per-prince-xml/#comments</comments>
		<pubDate>Tue, 30 Mar 2010 15:01:58 +0000</pubDate>
		<dc:creator>duccio</dc:creator>
		
		<category><![CDATA[Rails Snippet]]></category>

		<category><![CDATA[Risorse]]></category>

		<guid isPermaLink="false">http://www.extendi.it/ruby-on-rails/?p=1018</guid>
		<description><![CDATA[Prince XML non è una libreria opensource e necessita di una licenza che va da i 495$ fino ai 3800$, esiste anche una versione gratuita che aggiunge un watermark in alto a destra alla pagina. Se l&#8217;applicazione che state sviluppando si basa molto sui report di stampa, vi raccomando questa libreria che è indubbiamente la [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://princexml.com">Prince XML</a> non è una libreria opensource e necessita di una licenza che va da i 495$ fino ai 3800$, esiste anche una versione gratuita che aggiunge un watermark in alto a destra alla pagina. Se l&#8217;applicazione che state sviluppando si basa molto sui report di stampa, vi raccomando questa libreria che è indubbiamente la più <strong>flessibile</strong> e ha il vantaggio di usare i <strong>CSS</strong> per applicare gli stili al pdf. <a href="http://github.com/mbleigh/princely">Princely</a> è un wrapper per rails che permette di utilizzare gli strumenti di princeXML dalla vostra applicazione rails.</p>

<p>potete installarlo come gemma:</p>

<pre class="textmate-source"><span class='linenum'>    1</span> <span class="source source_shell">config.gem <span class="string string_quoted string_quoted_single string_quoted_single_shell"><span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_shell">'</span>princely<span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_shell">'</span></span>, :<span class="support support_function support_function_builtin support_function_builtin_shell">source</span> =<span class="keyword keyword_operator keyword_operator_redirect keyword_operator_redirect_shell">&gt;</span> <span class="string string_quoted string_quoted_single string_quoted_single_shell"><span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_shell">'</span>http://gemcutter.org<span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_shell">'</span></span></span></pre>

<p>o come plugin:</p>

<pre class="textmate-source"><span class='linenum'>    1</span> <span class="source source_shell">./script/plugin install git://github.com/mbleigh/princely.git </span></pre>
<img src="http://feeds.feedburner.com/~r/rails-on-the-road/~4/W-4_VxqJJkY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.extendi.it/ruby-on-rails/index.php/2010/03/30/princely-rails-wrapper-per-prince-xml/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.extendi.it/ruby-on-rails/index.php/2010/03/30/princely-rails-wrapper-per-prince-xml/</feedburner:origLink></item>
		<item>
		<title>La prima conferenza Rails Online =&gt; Rails 3</title>
		<link>http://feedproxy.google.com/~r/rails-on-the-road/~3/bAM7nh4cr-k/</link>
		<comments>http://www.extendi.it/ruby-on-rails/index.php/2010/02/19/la-prima-conferenza-rails-online-rails-3/#comments</comments>
		<pubDate>Fri, 19 Feb 2010 08:19:33 +0000</pubDate>
		<dc:creator>matte</dc:creator>
		
		<category><![CDATA[Confs]]></category>

		<category><![CDATA[Risorse]]></category>

		<guid isPermaLink="false">http://www.extendi.it/ruby-on-rails/?p=1014</guid>
		<description><![CDATA[Ieri si è svolta alle ore 18 italiane la prima conferenza Rails Online completamente gratuita e molto interessante. Ci sono stati solamente alcuni inconvenienti con la piattaforma utilizzata per fare il broadcasting audio e video: in totale ci sono stati 3 blocchi (almeno su Mac e Snow Leopard).

L&#8217;argomento principale è stato Rails 3: novità, upgrade [...]]]></description>
			<content:encoded><![CDATA[<p>Ieri si è svolta alle ore 18 italiane la prima conferenza Rails Online completamente gratuita e molto interessante. Ci sono stati solamente alcuni inconvenienti con la piattaforma utilizzata per fare il broadcasting audio e video: in totale ci sono stati 3 blocchi (almeno su Mac e Snow Leopard).</p>

<p>L&#8217;argomento principale è stato Rails 3: novità, upgrade da Rails 2 e l&#8217;utilizzo di Middleware Rack.</p>

<p>Potete trovare le slide della conferenza ai seguenti indirizzi:</p>

<ul>
<li><a href="http://assets.en.oreilly.com/1/event/46/Getting%20up-to-date%20with%20Rails%203%20Presentation.pdf">Yehuda: Rails 3 Overview</a>.</li>
<li><a href="http://assets.en.oreilly.com/1/event/46/Rails%202%20to%20the%203%20_Abridged_%20Presentation.pdf">Gregg Pollack: Beautiful Code in Rails 3</a>.</li>
<li><a href="http://assets.en.oreilly.com/1/event/46/Why%20Port_%20Presentation.pdf">Jeremy McAnally: Upgrading to Rails 3</a>.</li>
<li><a href="http://assets.en.oreilly.com/1/event/46/Rack%20in%20Rails%203%20Presentation.pdf">Ryan Tomayko: Rack in Rails 3</a>.</li>
</ul>
<img src="http://feeds.feedburner.com/~r/rails-on-the-road/~4/bAM7nh4cr-k" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.extendi.it/ruby-on-rails/index.php/2010/02/19/la-prima-conferenza-rails-online-rails-3/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.extendi.it/ruby-on-rails/index.php/2010/02/19/la-prima-conferenza-rails-online-rails-3/</feedburner:origLink></item>
		<item>
		<title>Go!webdesign: primo Workshop Italiano dedicato al WebDesign 2.0</title>
		<link>http://feedproxy.google.com/~r/rails-on-the-road/~3/o_O_OmYp6rE/</link>
		<comments>http://www.extendi.it/ruby-on-rails/index.php/2009/12/15/gowebdesign-primo-workshop-italiano-dedicato-al-webdesign-20/#comments</comments>
		<pubDate>Tue, 15 Dec 2009 13:52:04 +0000</pubDate>
		<dc:creator>duccio</dc:creator>
		
		<category><![CDATA[Ajax/Web 2.0]]></category>

		<category><![CDATA[Comunicati]]></category>

		<category><![CDATA[Confs]]></category>

		<category><![CDATA[Risorse]]></category>

		<guid isPermaLink="false">http://www.extendi.it/ruby-on-rails/?p=1006</guid>
		<description><![CDATA[Go!webdesign una giornata all&#8217;insegna delle tematiche più discusse sul mondo del webdesign 2.0, dai consigli degli esperti in sala a case history di grandi realtà italiane.



Durante l&#8217;evento saranno spiegate svariate tecniche e novità sull&#8217;uso di linguaggi legati al webdesign e software Adobe. Ci sarà la possibilità di partecipare alla tavola rotonda e discutere sui propri [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://goweb.juliusdesign.net/">Go!webdesign</a> una giornata all&#8217;insegna delle tematiche più discusse sul mondo del webdesign 2.0, dai consigli degli esperti in sala a case history di grandi realtà italiane.</p>

<p><a href="http://www.extendi.it/ruby-on-rails/wp-content/uploads/2009/12/julius.png"><img src="http://www.extendi.it/ruby-on-rails/wp-content/uploads/2009/12/julius-300x191.png" alt="julius" title="julius" width="300" height="191" class="aligncenter size-medium wp-image-1007" /></a></p>

<p>Durante l&#8217;evento saranno spiegate svariate tecniche e novità sull&#8217;uso di linguaggi legati al webdesign e software Adobe. Ci sarà la possibilità di partecipare alla tavola rotonda e discutere sui propri progetti o idee.</p>

<p>Infine grandi sorprese con una gara creativa, buffet e possibilità di ricevere via email tutto il materiale trattato durante l&#8217;evento.</p>

<p><a href="http://www.extendi.it">Extendi</a> sarà media partners all&#8217;evento.</p>

<p><a href="http://www.extendi.it/ruby-on-rails/wp-content/uploads/2009/12/media.png"><img src="http://www.extendi.it/ruby-on-rails/wp-content/uploads/2009/12/media-300x112.png" alt="media" title="media" width="300" height="112" class="aligncenter size-medium wp-image-1010" /></a></p>
<img src="http://feeds.feedburner.com/~r/rails-on-the-road/~4/o_O_OmYp6rE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.extendi.it/ruby-on-rails/index.php/2009/12/15/gowebdesign-primo-workshop-italiano-dedicato-al-webdesign-20/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.extendi.it/ruby-on-rails/index.php/2009/12/15/gowebdesign-primo-workshop-italiano-dedicato-al-webdesign-20/</feedburner:origLink></item>
		<item>
		<title>Ignorare il default_scope</title>
		<link>http://feedproxy.google.com/~r/rails-on-the-road/~3/gMOmi5zTCTs/</link>
		<comments>http://www.extendi.it/ruby-on-rails/index.php/2009/12/15/ignorare-il-default_scope/#comments</comments>
		<pubDate>Tue, 15 Dec 2009 13:39:51 +0000</pubDate>
		<dc:creator>duccio</dc:creator>
		
		<category><![CDATA[Rails Snippet]]></category>

		<guid isPermaLink="false">http://www.extendi.it/ruby-on-rails/?p=999</guid>
		<description><![CDATA[Può essere utile mettere un default_scope per filtrare a monte determinati contenuti, il problema è che se usate questo tipo di scope, verrà applicato sempre anche quando magari non serve.

Per evitare il problema o usate i named_scope, oppure usate il with_exclusive_scope.

    1 default_scope :conditions =&#62; ["field = ?", valore], :order =&#62; 'published_at [...]]]></description>
			<content:encoded><![CDATA[<p>Può essere utile mettere un <a href="http://api.rubyonrails.org/classes/ActiveRecord/Base.html#M002313">default_scope</a> per filtrare a monte determinati contenuti, il problema è che se usate questo tipo di scope, verrà applicato sempre anche quando magari non serve.</p>

<p>Per evitare il problema o usate i named_scope, oppure usate il <a href="http://api.rubyonrails.org/classes/ActiveRecord/Base.html#M002312">with_exclusive_scope</a>.</p>

<pre class="textmate-source"><span class='linenum'>    1</span> <span class="source source_ruby source_ruby_rails">default_scope <span class="constant constant_other constant_other_symbol constant_other_symbol_ruby"><span class="punctuation punctuation_definition punctuation_definition_constant punctuation_definition_constant_ruby">:</span>conditions</span> <span class="punctuation punctuation_separator punctuation_separator_key-value">=&gt;</span> <span class="punctuation punctuation_section punctuation_section_array punctuation_section_array_ruby">[</span><span class="string string_quoted string_quoted_double string_quoted_double_ruby"><span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_ruby">"</span>field = ?<span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_ruby">"</span></span><span class="punctuation punctuation_separator punctuation_separator_object punctuation_separator_object_ruby">,</span> valore<span class="punctuation punctuation_section punctuation_section_array punctuation_section_array_ruby">]</span><span class="punctuation punctuation_separator punctuation_separator_object punctuation_separator_object_ruby">,</span> <span class="constant constant_other constant_other_symbol constant_other_symbol_ruby"><span class="punctuation punctuation_definition punctuation_definition_constant punctuation_definition_constant_ruby">:</span>order</span> <span class="punctuation punctuation_separator punctuation_separator_key-value">=&gt;</span> <span class="string string_quoted string_quoted_single string_quoted_single_ruby"><span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_ruby">'</span>published_at DESC<span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_ruby">'</span></span></span></pre>

<p>Se usate il with_exclusive_scope ingnorerete il <strong>default_scope</strong>:</p>

<pre class="textmate-source"><span class='linenum'>    1</span> <span class="source source_ruby source_ruby_rails"><span class="support support_class support_class_ruby">Content</span><span class="punctuation punctuation_separator punctuation_separator_method punctuation_separator_method_ruby">.</span>send<span class="punctuation punctuation_section punctuation_section_function punctuation_section_function_ruby">(</span><span class="constant constant_other constant_other_symbol constant_other_symbol_ruby"><span class="punctuation punctuation_definition punctuation_definition_constant punctuation_definition_constant_ruby">:</span>with_exclusive_scope</span><span class="punctuation punctuation_section punctuation_section_function punctuation_section_function_ruby">)</span> <span class="punctuation punctuation_section punctuation_section_scope punctuation_section_scope_ruby">{</span><span class="meta meta_syntax meta_syntax_ruby meta_syntax_ruby_start-block">
</span><span class='linenum'>    2</span>   <span class="support support_class support_class_ruby">Content</span><span class="punctuation punctuation_separator punctuation_separator_method punctuation_separator_method_ruby">.</span>find<span class="punctuation punctuation_section punctuation_section_function punctuation_section_function_ruby">(</span><span class="constant constant_other constant_other_symbol constant_other_symbol_ruby"><span class="punctuation punctuation_definition punctuation_definition_constant punctuation_definition_constant_ruby">:</span>all</span><span class="punctuation punctuation_section punctuation_section_function punctuation_section_function_ruby">)</span>
<span class='linenum'>    3</span> <span class="punctuation punctuation_section punctuation_section_scope punctuation_section_scope_ruby">}</span></span></pre>
<img src="http://feeds.feedburner.com/~r/rails-on-the-road/~4/gMOmi5zTCTs" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.extendi.it/ruby-on-rails/index.php/2009/12/15/ignorare-il-default_scope/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.extendi.it/ruby-on-rails/index.php/2009/12/15/ignorare-il-default_scope/</feedburner:origLink></item>
		<item>
		<title>Eager loading e query con condizioni su associazioni polimorfiche e single table inheritance</title>
		<link>http://feedproxy.google.com/~r/rails-on-the-road/~3/PmFop9YT6j8/</link>
		<comments>http://www.extendi.it/ruby-on-rails/index.php/2009/12/01/eager-loading-e-query-con-condizioni-su-associazioni-polimorfiche-e-single-table-inheritance/#comments</comments>
		<pubDate>Tue, 01 Dec 2009 13:53:07 +0000</pubDate>
		<dc:creator>silvio</dc:creator>
		
		<category><![CDATA[Rails Snippet]]></category>

		<category><![CDATA[Risorse]]></category>

		<category><![CDATA[Tutorial]]></category>

		<category><![CDATA[active record]]></category>

		<category><![CDATA[documentation]]></category>

		<category><![CDATA[polymorphic]]></category>

		<category><![CDATA[rails]]></category>

		<category><![CDATA[ruby]]></category>

		<category><![CDATA[single table inheritance]]></category>

		<category><![CDATA[snippets]]></category>

		<guid isPermaLink="false">http://www.extendi.it/ruby-on-rails/?p=973</guid>
		<description><![CDATA[Come apprendiamo da questo vecchio post di Duccio, a partire dalla versione 2.1.0 di Rails è possibile effettuare query con eager loading su modelli polimorfici, ma tuttora non è possibile applicarci delle condizioni.

Un&#8217;interrogazione all&#8217;Active Record come la seguente funziona soltanto se il modello Account non è polimorfico:

usr = User.find(:first, :include =&#62; :accounts, :conditions =&#62; ["accounts.name [...]]]></description>
			<content:encoded><![CDATA[<p>Come apprendiamo da <a title="Rails 2.1.0 - Migliorate le performance di Active Record con l’uso della condizione IN di SQL" href="http://www.extendi.it/ruby-on-rails/index.php/2008/06/05/rails-210-migliorate-le-performance-di-active-record-con-luso-della-condizione-in-di-sql/">questo vecchio post</a> di Duccio, a partire dalla versione 2.1.0 di Rails è possibile effettuare query con <a title="Eager Loading" href="http://wiki.rubyonrails.org/it/howtos/db-relationships/eager-loading">eager loading</a> su modelli polimorfici, ma tuttora non è possibile applicarci delle condizioni.</p>

<p>Un&#8217;interrogazione all&#8217;Active Record come la seguente funziona soltanto se il modello Account non è polimorfico:</p>

<pre class="textmate-source">usr <span class="keyword keyword_operator keyword_operator_assignment keyword_operator_assignment_ruby">=</span> <span class="support support_class support_class_ruby">User</span>.find(<span class="constant constant_other constant_other_symbol constant_other_symbol_ruby">:first</span>, <span class="constant constant_other constant_other_symbol constant_other_symbol_ruby">:include</span> =&gt; <span class="constant constant_other constant_other_symbol constant_other_symbol_ruby">:accounts</span>, <span class="constant constant_other constant_other_symbol constant_other_symbol_ruby">:conditions</span> =&gt; [<span class="string string_quoted string_quoted_double string_quoted_double_ruby">"accounts.name = 'Principale'"</span>])</pre>

<p>Cerchiamo dunque di ovviare al problema dell&#8217;ActiveRecord che non consente di applicare condizioni sulla tabella polimorfica inclusa in eager loading.</p>

<p>La modellazione di esempio è la seguente: abbiamo delle &#8220;risorse&#8221; polimorfiche, da cui ereditano per STI i modelli Picture e Video che dunque sono polimorfici ed ereditari; queste risorse sono associate ai modelli Activity e Article.</p>

<pre class="textmate-source"><span class="meta meta_rails meta_rails_model"><span class="meta meta_class meta_class_ruby"><span class="keyword keyword_control keyword_control_class keyword_control_class_ruby">class</span> <span class="entity entity_name entity_name_type entity_name_type_class entity_name_type_class_ruby">Resource<span class="entity entity_other entity_other_inherited-class entity_other_inherited-class_ruby"> &lt; ActiveRecord::Base</span></span></span>
<span class="support support_function support_function_activerecord support_function_activerecord_rails">belongs_to</span> <span class="constant constant_other constant_other_symbol constant_other_symbol_ruby">:resourceable</span>, <span class="constant constant_other constant_other_symbol constant_other_symbol_ruby">:polymorphic</span> =&gt; <span class="constant constant_language constant_language_ruby">true</span>
</span><span class="keyword keyword_control keyword_control_ruby">end</span>

<span class="meta meta_class meta_class_ruby"><span class="keyword keyword_control keyword_control_class keyword_control_class_ruby">class</span> <span class="entity entity_name entity_name_type entity_name_type_class entity_name_type_class_ruby">Picture<span class="entity entity_other entity_other_inherited-class entity_other_inherited-class_ruby"> &lt; Resource</span></span></span>
<span class="keyword keyword_control keyword_control_ruby">end</span>

<span class="meta meta_class meta_class_ruby"><span class="keyword keyword_control keyword_control_class keyword_control_class_ruby">class</span> <span class="entity entity_name entity_name_type entity_name_type_class entity_name_type_class_ruby">Video<span class="entity entity_other entity_other_inherited-class entity_other_inherited-class_ruby"> &lt; Resource</span></span></span>
<span class="keyword keyword_control keyword_control_ruby">end</span>

<span class="meta meta_rails meta_rails_model"><span class="meta meta_class meta_class_ruby"><span class="keyword keyword_control keyword_control_class keyword_control_class_ruby">class</span> <span class="entity entity_name entity_name_type entity_name_type_class entity_name_type_class_ruby">Activity<span class="entity entity_other entity_other_inherited-class entity_other_inherited-class_ruby"> &lt; ActiveRecord::Base</span></span></span>
<span class="support support_function support_function_activerecord support_function_activerecord_rails">has_many</span> <span class="constant constant_other constant_other_symbol constant_other_symbol_ruby">:pictures</span>, <span class="constant constant_other constant_other_symbol constant_other_symbol_ruby">:as</span> =&gt; <span class="constant constant_other constant_other_symbol constant_other_symbol_ruby">:resourceable</span>,  <span class="constant constant_other constant_other_symbol constant_other_symbol_ruby">:dependent</span> =&gt; <span class="constant constant_other constant_other_symbol constant_other_symbol_ruby">:destroy</span>
<span class="support support_function support_function_activerecord support_function_activerecord_rails">has_many</span> <span class="constant constant_other constant_other_symbol constant_other_symbol_ruby">:videos</span>, <span class="constant constant_other constant_other_symbol constant_other_symbol_ruby">:as</span> =&gt; <span class="constant constant_other constant_other_symbol constant_other_symbol_ruby">:resourceable</span>,  <span class="constant constant_other constant_other_symbol constant_other_symbol_ruby">:dependent</span> =&gt; <span class="constant constant_other constant_other_symbol constant_other_symbol_ruby">:destroy</span>
</span><span class="keyword keyword_control keyword_control_ruby">end</span>

<span class="meta meta_rails meta_rails_model"><span class="meta meta_class meta_class_ruby"><span class="keyword keyword_control keyword_control_class keyword_control_class_ruby">class</span> <span class="entity entity_name entity_name_type entity_name_type_class entity_name_type_class_ruby">Article<span class="entity entity_other entity_other_inherited-class entity_other_inherited-class_ruby"> &lt; ActiveRecord::Base</span></span></span>
<span class="support support_function support_function_activerecord support_function_activerecord_rails">has_many</span> <span class="constant constant_other constant_other_symbol constant_other_symbol_ruby">:pictures</span>, <span class="constant constant_other constant_other_symbol constant_other_symbol_ruby">:as</span> =&gt; <span class="constant constant_other constant_other_symbol constant_other_symbol_ruby">:resourceable</span>, <span class="constant constant_other constant_other_symbol constant_other_symbol_ruby">:dependent</span> =&gt; <span class="constant constant_other constant_other_symbol constant_other_symbol_ruby">:destroy</span>
</span><span class="keyword keyword_control keyword_control_ruby">end</span></pre>

<p>Cerchiamo adesso di ottenere tutte le immagini associate ad un articolo, di cui ad esempio conosciamo solo parte del titolo.</p>

<p>Con questa modellazione, la seguente interrogazione all&#8217;Active Record ritornerebbe un errore:</p>

<pre class="textmate-source">items <span class="keyword keyword_operator keyword_operator_assignment keyword_operator_assignment_ruby">=</span> <span class="support support_class support_class_ruby">Picture</span>.find(<span class="constant constant_other constant_other_symbol constant_other_symbol_ruby">:all</span>,
<span class="constant constant_other constant_other_symbol constant_other_symbol_ruby">                     :include</span> =&gt; [<span class="constant constant_other constant_other_symbol constant_other_symbol_ruby">:resourceable</span>],
                     <span class="constant constant_other constant_other_symbol constant_other_symbol_ruby">:conditions</span> =&gt; [<span class="string string_quoted string_quoted_double string_quoted_double_ruby">"LOWER(resourceable.title) LIKE ?"</span>, <span class="string string_quoted string_quoted_double string_quoted_double_ruby">"%titolo_cercato%"</span>])</pre>

<p>Per risolvere questo problema è necessario specificare l&#8217;inner join, evitando di usare l&#8217;include:</p>

<pre class="textmate-source">items <span class="keyword keyword_operator keyword_operator_assignment keyword_operator_assignment_ruby">=</span> Picture.find(<span class="constant constant_other constant_other_symbol constant_other_symbol_ruby">:all</span>,
                     <span class="constant constant_other constant_other_symbol constant_other_symbol_ruby">:joins</span> =&gt; <span class="string string_quoted string_quoted_double string_quoted_double_ruby">"INNER JOIN articles ON articles.id = pictures.resourceable_id"</span>,
                     <span class="constant constant_other constant_other_symbol constant_other_symbol_ruby">:conditions</span> =&gt; [<span class="string string_quoted string_quoted_double string_quoted_double_ruby">"LOWER(articles.title) LIKE ?"</span>, <span class="string string_quoted string_quoted_double string_quoted_double_ruby">"</span><span class="string string_quoted string_quoted_double string_quoted_double_ruby">%titolo_cercato%</span><span class="string string_quoted string_quoted_double string_quoted_double_ruby">"</span>])</pre>

<p>Per ulteriori approfondimenti guardate la guida <a title="Active Record Query Interface" href="http://guides.rubyonrails.org/active_record_querying.html">Active Record Query Interface</a> e la <a title="API" href="http://api.rubyonrails.org/classes/ActiveRecord/Associations/ClassMethods.html">documentazione delle API</a></p>
<img src="http://feeds.feedburner.com/~r/rails-on-the-road/~4/PmFop9YT6j8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.extendi.it/ruby-on-rails/index.php/2009/12/01/eager-loading-e-query-con-condizioni-su-associazioni-polimorfiche-e-single-table-inheritance/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.extendi.it/ruby-on-rails/index.php/2009/12/01/eager-loading-e-query-con-condizioni-su-associazioni-polimorfiche-e-single-table-inheritance/</feedburner:origLink></item>
		<item>
		<title>Rails for PHP developers</title>
		<link>http://feedproxy.google.com/~r/rails-on-the-road/~3/lGIWlebWer4/</link>
		<comments>http://www.extendi.it/ruby-on-rails/index.php/2009/11/13/rails-for-php-developers/#comments</comments>
		<pubDate>Fri, 13 Nov 2009 15:35:56 +0000</pubDate>
		<dc:creator>matte</dc:creator>
		
		<category><![CDATA[Risorse]]></category>

		<guid isPermaLink="false">http://www.extendi.it/ruby-on-rails/?p=970</guid>
		<description><![CDATA[Dovendo effettuare il porting di una parte di codice PHP in Rails ho trovato molto utile questo sito soprattutto come referenza per capire quali funzioni ruby utilizzare.
]]></description>
			<content:encoded><![CDATA[<p>Dovendo effettuare il porting di una parte di codice PHP in Rails ho trovato molto utile <a href="http://railsforphp.com/">questo sito</a> soprattutto come <a href="http://railsforphp.com/reference/">referenza</a> per capire quali funzioni ruby utilizzare.</p>
<img src="http://feeds.feedburner.com/~r/rails-on-the-road/~4/lGIWlebWer4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.extendi.it/ruby-on-rails/index.php/2009/11/13/rails-for-php-developers/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.extendi.it/ruby-on-rails/index.php/2009/11/13/rails-for-php-developers/</feedburner:origLink></item>
		<item>
		<title>Ottimizzare le query con EXPLAIN di MySQL</title>
		<link>http://feedproxy.google.com/~r/rails-on-the-road/~3/2DEVXvYQYvY/</link>
		<comments>http://www.extendi.it/ruby-on-rails/index.php/2009/10/13/ottimizzare-le-query-con-explain-di-mysql/#comments</comments>
		<pubDate>Tue, 13 Oct 2009 13:25:12 +0000</pubDate>
		<dc:creator>duccio</dc:creator>
		
		<category><![CDATA[Rails Snippet]]></category>

		<category><![CDATA[Risorse]]></category>

		<category><![CDATA[Tutorial]]></category>

		<guid isPermaLink="false">http://www.extendi.it/ruby-on-rails/?p=945</guid>
		<description><![CDATA[L&#8217;ottimizzazione delle query è sempre un punto cruciale per ogni progetto ed  è sicuramente una parte fondamentale del processo di ottimizzazione di un&#8217;applicazione Web. Non credo di dirvi niente di nuovo ma, considerato che non ne ho mai parlato direttamente,  riporto un piccolo riassunto.

Ip plugin query_analyzer vi consente di avere l&#8217;EXPLAIN delle query [...]]]></description>
			<content:encoded><![CDATA[<p>L&#8217;ottimizzazione delle query è sempre un punto cruciale per ogni progetto ed  è sicuramente una parte fondamentale del processo di ottimizzazione di un&#8217;applicazione Web. Non credo di dirvi niente di nuovo ma, considerato che non ne ho mai parlato direttamente,  riporto un piccolo riassunto.</p>

<p>Ip plugin <a href="http://agilewebdevelopment.com/plugins/query_analyzer">query_analyzer</a> vi consente di avere l&#8217;EXPLAIN delle query direttamente nel log:</p>

<pre class="textmate-source"><span class='linenum'>    1</span> <span class="source source_shell">./script/plugin install http://svn.nfectio.us/plugins/query_analyzer</span></pre>

<p>La sintassi per vedere l&#8217;explain di una query da shell mysql:</p>

<pre class="textmate-source"><span class='linenum'>    1</span> <span class="source source_sql">EXPLAIN [EXTENDED] <span class="keyword keyword_other keyword_other_DML keyword_other_DML_sql">SELECT</span> select_options</span></pre>

<p>L&#8217;explain restituisce informazioni per ogni tabella coinvolta nella query, vediamo un esempio in cui mancano indici:</p>

<p><a href="http://www.extendi.it/ruby-on-rails/wp-content/uploads/2009/10/picture-1.png"><img src="http://www.extendi.it/ruby-on-rails/wp-content/uploads/2009/10/picture-1.png" alt="picture-1" title="picture-1" width="574" height="68" class="aligncenter size-full wp-image-948" /></a></p>

<p>In questo caso il <strong>select_type</strong> è <strong>simple</strong>, non ci sono join, il <strong>type</strong> è ALL cioè cerca su tutte le righe, e nessuna possible_keys. Aggiungendo  un indice al campo <em>action</em> della tabella <em>contents</em> (La query effettuata è Content.find_by_action(&#8221;nome azione&#8221;)) si ottiene  questo risultato:</p>

<p><a href="http://www.extendi.it/ruby-on-rails/wp-content/uploads/2009/10/picture-2.png"><img src="http://www.extendi.it/ruby-on-rails/wp-content/uploads/2009/10/picture-2.png" alt="picture-2" title="picture-2" width="779" height="70" class="aligncenter size-full wp-image-951" /></a></p>

<p>Migliorando di fatto il tempo necessario per eseguire la query, tempo ulteriormente migliorabile usando il caching di Mysql.  </p>

<p>In generale col query_analyzer (<strong>con l&#8217;EXPLAIN di mysql</strong>) potrete trovare i seguenti valori per ogni campo visualizzato:</p>

<h3>Select_type</h3>

<p>E&#8217; il tipo di SELECT:</p>

<ul>
<li><strong>SIMPLE</strong> select semplice senza join o sottoquery</li>
<li><strong>PRIMARY</strong> outermost SELECT</li>
<li><strong>DEPENDENT UNION</strong> seconda o ultima SELECT in una unione</li>
<li><strong>UNION RESULT</strong> risultato di una UNION</li>
<li><strong>SUBQUERY</strong> prima SELECT in una subquery</li>
<li><strong>DEPENDENT SUBQUERY</strong> prima SELECT in un una subquery dipendente da un altra query</li>
<li><strong>DERIVED</strong> subquery nel FROM</li>
<li><strong>UNCACHEABLE SUBQUERY</strong> subquery non cachabile</li>
</ul>

<h3>Table</h3>

<p>E&#8217; la tabella su cui si esegue la query.</p>

<h3>Type</h3>

<p>E&#8217; il tipo di Join e sono in ordine dal migliore al peggiore:</p>

<ul>
 <li><strong>system</strong>: la tabella ha una sola riga è un caso particolare di const</li>
 <li><strong>const</strong>:  la tabella ha al massimo una riga corrispondente, che viene letta all&#8217;inizio della query. Poichè c&#8217;è una sola riga, i valori delle colonne in questa riga sono considerati come costanti da parte dell&#8217;optimizer. Le tabelle const sono molto veloci perché vengono letti solo una volta.</li>
 <li><strong>eq_ref</strong>: viene letta una riga per ogni combinazione di righe delle tabelle precedenti. È usato quando tutte le parti di un indice sono utilizzate dalla join e l&#8217;indice è una PRIMARY KEY o UNIQUE.</li>
<li><strong>ref</strong>: tutte le righe con i corrispondenti valori di indice vengono letti da questa tabella per ogni combinazione di righe delle tabelle precedenti. ref viene utilizzato se la join utilizza solo la parte più a sinistra dell&#8217;indice o se la chiave non è un indice PRIMARY KEY o UNIQUE (in altre parole, se l&#8217;unione non può selezionare una sola riga sulla base del valore della chiave). Va bene quando il set di righe di unione è piccolo.
</li><li><strong>fulltext</strong>: ricerca di tipo fulltext</li>
<li><strong>range</strong>: solo le righe che si trovano in un determinato intervallo vengono recuperate, utilizzando un indice per selezionare le righe. La colonna chiave della riga di output indica che l&#8217;indice viene utilizzato. Il key_len contiene la parte più lunga chiave che è stata utilizzata. La colonna ref è NULL per questo tipo. Viene usata per =, <>, >, >=, < , <=, IS NULL, <=>, BETWEEN, o IN() 
</li><li><strong>index</strong>: è come ALL ma si cerca sull&#8217;indice</li>
<li><strong>ALL</strong>: viene fatta una scansione completa della tabella,  per ogni combinazione di righe delle tabelle precedenti. Questo normalmente non va bene, si risolve mettendo indici.</li>
</ul>

<h3>Possible_keys</h3>

<p>La colonna <strong>possible_keys</strong> indica gli indici che MySQL può scegliere per trovare le righe in questa tabella. </p>

<h3>Key</h3>

<p>La colonna <strong>key</strong> è l&#8217;indice che MySQL ha effettivamente deciso di utilizzare. MySQL, può decidere di utilizzare sia uno degli indici <strong>possible_keys</strong> per cercare le righe, sia la primary key.</p>

<p>E &#8216;possibile che key sia il nome di un indice che non è presente in <strong>possible_keys</strong>. Questo può accadere se nessuno degli indici possible_keys è adatto per la ricerca, ma tutte le colonne selezionate dalla query sono colonne di qualche altro indice. Cioè, l&#8217;indice copre le colonne selezionate, quindi anche se non viene utilizzato per determinare le righe da recuperare, lì la ricerca è comunque più veloce.</p>

<h3>Key_len</h3>

<p>La colonna <strong>key_len</strong> indica la lunghezza della chiave che MySQL ha deciso di utilizzare. La lunghezza è NULL se la colonna <strong>key</strong> dice NULL. Si noti che il valore di key_len consente di determinare quante parti di più chiavi MySQL utilizza effettivamente.</p>

<h3>Ref</h3>

<p>La colonna <strong>ref</strong> mostra quali colonne o costanti sono confrontati con l&#8217;indice per selezionare le righe della tabella.</p>

<h3>Rows</h3>

<p>La colonna righe indica il numero di righe MySQL ritiene che esso deve verificare l&#8217;esecuzione della query.
Per i db innoDB non sempre il numero di righe stimato è quello reale.</p>

<h3>Extra</h3>

<p>Questa colonna contiene ulteriori informazioni su come MySQL risolve la query. Dicimo che se trovat scritto <strong>Using where</strong> e type è <strong>ALL</strong> o <strong>index</strong> c&#8217;è qualche problema sulla vostra query.</p>
<img src="http://feeds.feedburner.com/~r/rails-on-the-road/~4/2DEVXvYQYvY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.extendi.it/ruby-on-rails/index.php/2009/10/13/ottimizzare-le-query-con-explain-di-mysql/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.extendi.it/ruby-on-rails/index.php/2009/10/13/ottimizzare-le-query-con-explain-di-mysql/</feedburner:origLink></item>
		<item>
		<title>BudgetUp è online!</title>
		<link>http://feedproxy.google.com/~r/rails-on-the-road/~3/AphtOlY_WzY/</link>
		<comments>http://www.extendi.it/ruby-on-rails/index.php/2009/09/21/budgetup-e-online/#comments</comments>
		<pubDate>Mon, 21 Sep 2009 12:46:24 +0000</pubDate>
		<dc:creator>silvio</dc:creator>
		
		<category><![CDATA[Ajax/Web 2.0]]></category>

		<category><![CDATA[Comunicati]]></category>

		<category><![CDATA[Release]]></category>

		<guid isPermaLink="false">http://www.extendi.it/ruby-on-rails/?p=937</guid>
		<description><![CDATA[Siamo molto eccitati nell&#8217;annunciarvi che dopo mesi di duro lavoro BudgetUp è stato lanciato!


BudgetUp ti permette di gestire agilmente spese, guadagni e l&#8217;andamento delle tue finanze.

Abbiamo appena cominciato l&#8217;avventura e ringraziamo in anticipo chiunque voglia darci consigli o riportare errori, aiutandoci così a renderlo un prodotto migliore.
]]></description>
			<content:encoded><![CDATA[<p>Siamo molto eccitati nell&#8217;annunciarvi che dopo mesi di duro lavoro <a title="BudgetUp" href="http://budgetup.com/">BudgetUp</a> è stato lanciato!</p>

<p><a title="BudgetUp" href="http://budgetup.com/"><img class="aligncenter size-medium wp-image-939" title="budgetupit" src="http://www.extendi.it/ruby-on-rails/wp-content/uploads/2009/09/budgetupit-300x226.jpg" alt="budgetupit" width="300" height="226" /></a>
BudgetUp ti permette di gestire agilmente spese, guadagni e l&#8217;andamento delle tue finanze.</p>

<p>Abbiamo appena cominciato l&#8217;avventura e ringraziamo in anticipo chiunque voglia darci consigli o riportare errori, aiutandoci così a renderlo un prodotto migliore.</p>
<img src="http://feeds.feedburner.com/~r/rails-on-the-road/~4/AphtOlY_WzY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.extendi.it/ruby-on-rails/index.php/2009/09/21/budgetup-e-online/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.extendi.it/ruby-on-rails/index.php/2009/09/21/budgetup-e-online/</feedburner:origLink></item>
		<item>
		<title>Ferret Browser</title>
		<link>http://feedproxy.google.com/~r/rails-on-the-road/~3/_993f0WwK2I/</link>
		<comments>http://www.extendi.it/ruby-on-rails/index.php/2009/09/16/ferret-browser/#comments</comments>
		<pubDate>Wed, 16 Sep 2009 16:30:37 +0000</pubDate>
		<dc:creator>silvio</dc:creator>
		
		<category><![CDATA[Risorse]]></category>

		<category><![CDATA[plugin]]></category>

		<category><![CDATA[ferret]]></category>

		<guid isPermaLink="false">http://www.extendi.it/ruby-on-rails/?p=926</guid>
		<description><![CDATA[Oggi mentre stavo indagando su un problema con il Ferret che non indicizzava un modello, mi sono imbattuto su ferret-browser.



Questa simpatica utility ci consente di navigare nell&#8217;indice del Ferret tramite il browser, di analizzare la struttura e gli attributi dell&#8217;indice, nonché di visualizzare qualche statistica sui termini indicizzati per ogni attributo.

ferret-browser viene installato insieme alla [...]]]></description>
			<content:encoded><![CDATA[<p>Oggi mentre stavo indagando su un problema con il <a title="Ferret" href="http://www.davebalmain.com/" target="_blank">Ferret</a> che non indicizzava un modello, mi sono imbattuto su <a title="Ferret Browser" href="http://www.davebalmain.com/trac/wiki/FerretBrowser" target="_blank">ferret-browser</a>.</p>

<p><img class="alignnone size-medium wp-image-930" title="Ferret Browser" src="http://www.extendi.it/ruby-on-rails/wp-content/uploads/2009/09/immagine-1-300x196.png" alt="Ferret Browser" width="300" height="196" /></p>

<p>Questa simpatica utility ci consente di navigare nell&#8217;indice del Ferret tramite il browser, di analizzare la struttura e gli attributi dell&#8217;indice, nonché di visualizzare qualche statistica sui termini indicizzati per ogni attributo.</p>

<p>ferret-browser viene installato insieme alla gemma del Ferret e si esegue da console, indicando come parametro il path dell&#8217;indice, ad esempio:</p>

<pre class="textmate-source"><span class="text text_plain"><span class="meta meta_paragraph meta_paragraph_text">ferret-browser /Users/silvio/Sites/mio-progetto/index/development/nome-modello</span></span></pre>

<p>In questo modo viene avviato WEBrick ed è sufficiente puntare il browser su http://localhost:3301/</p>
<img src="http://feeds.feedburner.com/~r/rails-on-the-road/~4/_993f0WwK2I" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.extendi.it/ruby-on-rails/index.php/2009/09/16/ferret-browser/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.extendi.it/ruby-on-rails/index.php/2009/09/16/ferret-browser/</feedburner:origLink></item>
		<item>
		<title>Upgrade a Snow Leopard</title>
		<link>http://feedproxy.google.com/~r/rails-on-the-road/~3/ApmA1WC6KY0/</link>
		<comments>http://www.extendi.it/ruby-on-rails/index.php/2009/09/08/upgrade-a-snow-leopard/#comments</comments>
		<pubDate>Tue, 08 Sep 2009 15:56:05 +0000</pubDate>
		<dc:creator>matte</dc:creator>
		
		<category><![CDATA[Configurazioni]]></category>

		<category><![CDATA[Mac]]></category>

		<guid isPermaLink="false">http://www.extendi.it/ruby-on-rails/?p=906</guid>
		<description><![CDATA[Oggi è arrivato in office Snow Leopard e abbiamo deciso di aggiornare i nostri iMac sperando di non incappare in qualche incompatibilità con i software che utilizziamo. Tutto è filato liscio (non abbiamo dovuto ripristinare backup) anche se ci sono stati alcuni inconvenienti. Per questo vi consiglio (a parte un backup dei file più importanti) [...]]]></description>
			<content:encoded><![CDATA[<p>Oggi è arrivato in office <a href="http://www.apple.com/it/macosx/">Snow Leopard</a> e abbiamo deciso di aggiornare i nostri iMac sperando di non incappare in qualche incompatibilità con i software che utilizziamo. Tutto è filato liscio (non abbiamo dovuto ripristinare backup) anche se ci sono stati alcuni inconvenienti. Per questo vi consiglio (a parte un backup dei file più importanti) di salvare i seguenti file che l&#8217;aggiornamento va a sovrascrivere, nel caso in cui abbiate avuto la necessità di cambiarli:</p>

<p>/etc/hosts<br />
/etc/apache2/httpd.conf</p>

<p>Inoltre se utilizzate <a href="http://www.macports.org/">MacPorts</a> per installare i pacchetti software (tipo ruby, mysql, tomcat) effettuate un backup su file del nome dei pacchetti installati con il comando:</p>

<pre><code>port installed &gt; myports.txt
</code></pre>

<p>Una volta effettuato l&#8217;aggiornamento non è stato più possibile lanciare il comando port, ottenendo il seguente errore:</p>

<pre class="textmate-source"><span class='linenum'>    1</span> <span class="source source_shell">dlopen<span class="meta meta_scope meta_scope_subshell meta_scope_subshell_shell"><span class="punctuation punctuation_definition punctuation_definition_subshell punctuation_definition_subshell_shell">(</span>/opt/<span class="storage storage_modifier storage_modifier_shell">local</span>/share/macports/Tcl/pextlib1.0/Pextlib.dylib, 10<span class="punctuation punctuation_definition punctuation_definition_subshell punctuation_definition_subshell_shell">)</span></span>: no suitable image found.  Did find:
<span class='linenum'>    2</span>   /opt/<span class="storage storage_modifier storage_modifier_shell">local</span>/share/macports/Tcl/pextlib1.0/Pextlib.dylib: mach-o, but wrong architecture
<span class='linenum'>    3</span>     <span class="meta meta_scope meta_scope_while-loop meta_scope_while-loop_shell"><span class="keyword keyword_control keyword_control_shell">while</span> executing
<span class='linenum'>    4</span> <span class="string string_quoted string_quoted_double string_quoted_double_shell"><span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_shell">"</span>load /opt/local/share/macports/Tcl/pextlib1.0/Pextlib.dylib<span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_shell">"</span></span>
<span class='linenum'>    5</span>     <span class="meta meta_scope meta_scope_subshell meta_scope_subshell_shell"><span class="punctuation punctuation_definition punctuation_definition_subshell punctuation_definition_subshell_shell">(</span><span class="string string_quoted string_quoted_double string_quoted_double_shell"><span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_shell">"</span>package ifneeded Pextlib 1.0<span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_shell">"</span></span> script<span class="punctuation punctuation_definition punctuation_definition_subshell punctuation_definition_subshell_shell">)</span></span>
<span class='linenum'>    6</span>     invoked from within
<span class='linenum'>    7</span> <span class="string string_quoted string_quoted_double string_quoted_double_shell"><span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_shell">"</span>package require Pextlib 1.0<span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_shell">"</span></span>
<span class='linenum'>    8</span>     <span class="meta meta_scope meta_scope_subshell meta_scope_subshell_shell"><span class="punctuation punctuation_definition punctuation_definition_subshell punctuation_definition_subshell_shell">(</span>file <span class="string string_quoted string_quoted_double string_quoted_double_shell"><span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_shell">"</span>/opt/local/bin/port<span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_shell">"</span></span> line 40<span class="punctuation punctuation_definition punctuation_definition_subshell punctuation_definition_subshell_shell">)</span></span></span></span></pre>

<p>Per risolvere il problema su Snow Leopard scaricate ed installate <a href="http://distfiles.macports.org/MacPorts/MacPorts-1.8.0-10.6-SnowLeopard.dmg">http://distfiles.macports.org/MacPorts/MacPorts-1.8.0-10.6-SnowLeopard.dmg</a></p>

<p>Poi aggiornate il repositorio dei pacchetti con il comando</p>

<pre><code>sudo port selfupdate
</code></pre>

<p>Per ricompilare tutti i pacchetti lanciate il comando: </p>

<pre><code>sudo port upgrade --force installed
</code></pre>

<p>per aggiornare solamente quelli più vecchi:</p>

<pre><code>sudo port upgrade outdated
</code></pre>

<p>A questo punto installate XCode dal DVD di Snow Leopard e controllate le gemme da reinstallare a 64 bit con lo script <a href="http://gist.github.com/178178">http://gist.github.com/178178</a>.</p>

<p>Nel caso in cui abbiate dei problemi con la gemma ruby di mysql reinstallatela con il comando:</p>

<pre class="textmate-source"><span class='linenum'>    1</span> <span class="source source_shell">sudo env ARCHFLAGS=<span class="string string_quoted string_quoted_double string_quoted_double_shell"><span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_shell">"</span>-arch x86_64<span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_shell">"</span></span> gem install mysql -- --with-mysql-config=/opt/<span class="storage storage_modifier storage_modifier_shell">local</span>/lib/mysql5/bin/mysql_config
</span><span class='linenum'>    2</span> </pre>

<p>Se ottenete il seguente errore:</p>

<pre class="textmate-source"><span class='linenum'>    1</span> <span class="source source_shell">dyld: lazy symbol binding failed: Symbol not found: _mysql_init
<span class='linenum'>    2</span>   Referenced from: /Library/Ruby/Gems/1.8/gems/mysql-2.8.1/lib/mysql_api.bundle
<span class='linenum'>    3</span>   Expected <span class="keyword keyword_control keyword_control_shell">in</span>: flat namespace
<span class='linenum'>    4</span> 
<span class='linenum'>    5</span> dyld: Symbol not found: _mysql_init
<span class='linenum'>    6</span>   Referenced from: /Library/Ruby/Gems/1.8/gems/mysql-2.8.1/lib/mysql_api.bundle
<span class='linenum'>    7</span>   Expected <span class="keyword keyword_control keyword_control_shell">in</span>: flat namespace</span></pre>

<p>oppure:</p>

<pre class="textmate-source"><span class='linenum'>    1</span> <span class="source source_shell">Status: 500 Internal Server Error
<span class='linenum'>    2</span> uninitialized constant MysqlCompat::MysqlRes</span></pre>

<p>e avete il mysql installato tramite port, ricompilatelo di nuovo a 64 bit con il comando:</p>

<pre><code>sudo port upgrade mysql5
</code></pre>

<p>Se trovate altre complicazioni segnalatele pure nei commenti, grazie.</p>
<img src="http://feeds.feedburner.com/~r/rails-on-the-road/~4/ApmA1WC6KY0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.extendi.it/ruby-on-rails/index.php/2009/09/08/upgrade-a-snow-leopard/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.extendi.it/ruby-on-rails/index.php/2009/09/08/upgrade-a-snow-leopard/</feedburner:origLink></item>
		<item>
		<title>Rails: default_scope</title>
		<link>http://feedproxy.google.com/~r/rails-on-the-road/~3/tc2w51Nb-9I/</link>
		<comments>http://www.extendi.it/ruby-on-rails/index.php/2009/08/27/rails-default_scope/#comments</comments>
		<pubDate>Thu, 27 Aug 2009 16:18:50 +0000</pubDate>
		<dc:creator>duccio</dc:creator>
		
		<category><![CDATA[Rails Snippet]]></category>

		<guid isPermaLink="false">http://www.extendi.it/ruby-on-rails/?p=898</guid>
		<description><![CDATA[Ricordate quando usavamo il plugin scoped_access per aggiungere condizioni di default ad ogni query effettuata, poi sono stati introdotti i named_scope, favolosi. 

Con i named_scope potete aggiungere dei metodi di classe per filtrare e recuperare elementi dal database, ad esempio se volete tutti i contenuti pubblicati:

    1 class Contenuti &#60; ActiveRecord::Base
  [...]]]></description>
			<content:encoded><![CDATA[<p>Ricordate quando usavamo il plugin <strong>scoped_access</strong> per aggiungere condizioni di default ad ogni query effettuata, poi sono stati introdotti i <a href="http://api.rubyonrails.org/classes/ActiveRecord/NamedScope/ClassMethods.html">named_scope</a>, favolosi. </p>

<p>Con i named_scope potete aggiungere dei metodi di classe per filtrare e recuperare elementi dal database, ad esempio se volete tutti i contenuti pubblicati:</p>

<pre class="textmate-source"><span class='linenum'>    1</span> <span class="source source_ruby source_ruby_rails"><span class="meta meta_rails meta_rails_model"><span class="meta meta_class meta_class_ruby"><span class="keyword keyword_control keyword_control_class keyword_control_class_ruby">class</span> <span class="entity entity_name entity_name_type entity_name_type_class entity_name_type_class_ruby">Contenuti<span class="entity entity_other entity_other_inherited-class entity_other_inherited-class_ruby"> <span class="punctuation punctuation_separator punctuation_separator_inheritance punctuation_separator_inheritance_ruby">&lt;</span> ActiveRecord::Base</span></span></span>
<span class='linenum'>    2</span>   <span class="support support_function support_function_activerecord support_function_activerecord_rails">named_scope</span> <span class="constant constant_other constant_other_symbol constant_other_symbol_ruby"><span class="punctuation punctuation_definition punctuation_definition_constant punctuation_definition_constant_ruby">:</span>pubblicati</span><span class="punctuation punctuation_separator punctuation_separator_object punctuation_separator_object_ruby">,</span> <span class="constant constant_other constant_other_symbol constant_other_symbol_ruby"><span class="punctuation punctuation_definition punctuation_definition_constant punctuation_definition_constant_ruby">:</span>conditions</span> <span class="punctuation punctuation_separator punctuation_separator_key-value">=&gt;</span> <span class="punctuation punctuation_section punctuation_section_scope punctuation_section_scope_ruby">{</span><span class="constant constant_other constant_other_symbol constant_other_symbol_ruby"><span class="punctuation punctuation_definition punctuation_definition_constant punctuation_definition_constant_ruby">:</span>published_at</span> <span class="punctuation punctuation_separator punctuation_separator_key-value">=&gt;</span> <span class="string string_quoted string_quoted_double string_quoted_double_ruby"><span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_ruby">"</span>IS NOT NULL<span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_ruby">"</span></span><span class="punctuation punctuation_section punctuation_section_scope punctuation_section_scope_ruby">}</span>
</span><span class='linenum'>    3</span> <span class="keyword keyword_control keyword_control_ruby">end</span></span></pre>

<p>Se però volete i contenuti pubblicati ma sempre e solo quelli scritti da un certo autore, dovreste fare un nuovo named scope: </p>

<pre class="textmate-source"><span class='linenum'>    1</span> <span class="source source_ruby source_ruby_rails"><span class="meta meta_rails meta_rails_model"><span class="meta meta_class meta_class_ruby"><span class="keyword keyword_control keyword_control_class keyword_control_class_ruby">class</span> <span class="entity entity_name entity_name_type entity_name_type_class entity_name_type_class_ruby">Contenuti<span class="entity entity_other entity_other_inherited-class entity_other_inherited-class_ruby"> <span class="punctuation punctuation_separator punctuation_separator_inheritance punctuation_separator_inheritance_ruby">&lt;</span> ActiveRecord::Base</span></span></span>
<span class='linenum'>    2</span>   <span class="support support_function support_function_activerecord support_function_activerecord_rails">named_scope</span> <span class="constant constant_other constant_other_symbol constant_other_symbol_ruby"><span class="punctuation punctuation_definition punctuation_definition_constant punctuation_definition_constant_ruby">:</span>pubblicati</span><span class="punctuation punctuation_separator punctuation_separator_object punctuation_separator_object_ruby">,</span> <span class="constant constant_other constant_other_symbol constant_other_symbol_ruby"><span class="punctuation punctuation_definition punctuation_definition_constant punctuation_definition_constant_ruby">:</span>conditions</span> <span class="punctuation punctuation_separator punctuation_separator_key-value">=&gt;</span> <span class="punctuation punctuation_section punctuation_section_scope punctuation_section_scope_ruby">{</span><span class="constant constant_other constant_other_symbol constant_other_symbol_ruby"><span class="punctuation punctuation_definition punctuation_definition_constant punctuation_definition_constant_ruby">:</span>published_at</span> <span class="punctuation punctuation_separator punctuation_separator_key-value">=&gt;</span> <span class="string string_quoted string_quoted_double string_quoted_double_ruby"><span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_ruby">"</span>IS NOT NULL<span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_ruby">"</span></span><span class="punctuation punctuation_section punctuation_section_scope punctuation_section_scope_ruby">}</span>
<span class='linenum'>    3</span>   <span class="support support_function support_function_activerecord support_function_activerecord_rails">named_scope</span> <span class="constant constant_other constant_other_symbol constant_other_symbol_ruby"><span class="punctuation punctuation_definition punctuation_definition_constant punctuation_definition_constant_ruby">:</span>solo_di_duccio</span><span class="punctuation punctuation_separator punctuation_separator_object punctuation_separator_object_ruby">,</span> <span class="constant constant_other constant_other_symbol constant_other_symbol_ruby"><span class="punctuation punctuation_definition punctuation_definition_constant punctuation_definition_constant_ruby">:</span>conditions</span> <span class="punctuation punctuation_separator punctuation_separator_key-value">=&gt;</span> <span class="punctuation punctuation_section punctuation_section_scope punctuation_section_scope_ruby">{</span><span class="constant constant_other constant_other_symbol constant_other_symbol_ruby"><span class="punctuation punctuation_definition punctuation_definition_constant punctuation_definition_constant_ruby">:</span>author_name</span> <span class="punctuation punctuation_separator punctuation_separator_key-value">=&gt;</span> <span class="string string_quoted string_quoted_double string_quoted_double_ruby"><span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_ruby">"</span>duccio<span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_ruby">"</span></span><span class="punctuation punctuation_section punctuation_section_scope punctuation_section_scope_ruby">}</span>
</span><span class='linenum'>    4</span> <span class="keyword keyword_control keyword_control_ruby">end</span>
</span><span class='linenum'>    5</span> </pre>

<p>e dopo fare <strong>Content.pubblicati.solo_di_duccio</strong>.</p>

<p>Ma se voglio sempre e solo quelli di duccio posso definire <strong>default_scope</strong>:</p>

<pre class="textmate-source"><span class='linenum'>    1</span> <span class="source source_ruby source_ruby_rails"><span class="meta meta_rails meta_rails_model"><span class="meta meta_class meta_class_ruby"><span class="keyword keyword_control keyword_control_class keyword_control_class_ruby">class</span> <span class="entity entity_name entity_name_type entity_name_type_class entity_name_type_class_ruby">Contenuti<span class="entity entity_other entity_other_inherited-class entity_other_inherited-class_ruby"> <span class="punctuation punctuation_separator punctuation_separator_inheritance punctuation_separator_inheritance_ruby">&lt;</span> ActiveRecord::Base</span></span></span>
<span class='linenum'>    2</span>   default_scope <span class="constant constant_other constant_other_symbol constant_other_symbol_ruby"><span class="punctuation punctuation_definition punctuation_definition_constant punctuation_definition_constant_ruby">:</span>conditions</span> <span class="punctuation punctuation_separator punctuation_separator_key-value">=&gt;</span> <span class="punctuation punctuation_section punctuation_section_scope punctuation_section_scope_ruby">{</span><span class="constant constant_other constant_other_symbol constant_other_symbol_ruby"><span class="punctuation punctuation_definition punctuation_definition_constant punctuation_definition_constant_ruby">:</span>author_name</span> <span class="punctuation punctuation_separator punctuation_separator_key-value">=&gt;</span> <span class="string string_quoted string_quoted_double string_quoted_double_ruby"><span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_ruby">"</span>duccio<span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_ruby">"</span></span><span class="punctuation punctuation_section punctuation_section_scope punctuation_section_scope_ruby">}</span><span class="punctuation punctuation_separator punctuation_separator_object punctuation_separator_object_ruby">,</span> <span class="constant constant_other constant_other_symbol constant_other_symbol_ruby"><span class="punctuation punctuation_definition punctuation_definition_constant punctuation_definition_constant_ruby">:</span>order</span> <span class="punctuation punctuation_separator punctuation_separator_key-value">=&gt;</span> <span class="string string_quoted string_quoted_single string_quoted_single_ruby"><span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_ruby">'</span>created_at ASC<span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_ruby">'</span></span>
</span><span class='linenum'>    3</span> <span class="keyword keyword_control keyword_control_ruby">end</span>
</span><span class='linenum'>    4</span> </pre>

<p><br /></p>
<img src="http://feeds.feedburner.com/~r/rails-on-the-road/~4/tc2w51Nb-9I" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.extendi.it/ruby-on-rails/index.php/2009/08/27/rails-default_scope/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.extendi.it/ruby-on-rails/index.php/2009/08/27/rails-default_scope/</feedburner:origLink></item>
	</channel>
</rss>
