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

<channel>
	<title>Rafa Garcia.net - Blog &#187; rails</title>
	<atom:link href="http://blog.rafagarcia.net/tag/rails/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.rafagarcia.net</link>
	<description>Desvaríos varios sobre ruby, rails, linux, capistrano, ... y muchas cosas más!</description>
	<lastBuildDate>Sun, 22 Aug 2010 13:35:01 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Tus gemas al día con gemcutter</title>
		<link>http://blog.rafagarcia.net/2009/11/12/tus-gemas-al-dia-con-gemcutter/</link>
		<comments>http://blog.rafagarcia.net/2009/11/12/tus-gemas-al-dia-con-gemcutter/#comments</comments>
		<pubDate>Thu, 12 Nov 2009 10:22:48 +0000</pubDate>
		<dc:creator>Rafa García</dc:creator>
				<category><![CDATA[ruby]]></category>
		<category><![CDATA[gems]]></category>
		<category><![CDATA[rails]]></category>

		<guid isPermaLink="false">http://blog.rafagarcia.net/?p=70</guid>
		<description><![CDATA[Con este post no os voy a descubrir nada nuevo a muchos pero aquí quedará para la posteridad. Ahora que tenemos gemcutter el &#8220;awesome gem hosting&#8221; (tal como se describen ellos mismos) debemos hacer que nuestro origen principal de gemas sea este. Esto lo hacemos de manera muy simple y en 3 pasos. 1. Actualizamos [...]]]></description>
			<content:encoded><![CDATA[<p>Con este post no os voy a descubrir nada nuevo a muchos pero aquí quedará para la posteridad.</p>
<p>Ahora que tenemos gemcutter el &#8220;awesome gem hosting&#8221; (tal como se describen ellos mismos) debemos hacer que nuestro origen principal de gemas sea este.</p>
<p>Esto lo hacemos de manera muy simple y en 3 pasos.</p>
<p><br class="spacer_" /></p>
<p>1. Actualizamos Rubygems a la última version:</p>
<p>$ sudo gem update &#8211;system</p>
<p>2. Instalamos la gema gemcutter:</p>
<p>$ sudo gem install gemcutter</p>
<p>3. Cambiamos el origen de las gemas con el comando:</p>
<p>$ sudo gem tumble</p>
<p><br class="spacer_" /></p>
<p>Esto es todo <img src='http://blog.rafagarcia.net/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p><br class="spacer_" /></p>
<p><strong>Actualización:</strong></p>
<p>Parece que eso no era todo.</p>
<p>Diego, <a href="http://diec123.blogspot.com/" target="_blank">un programador cualquiera</a> <img src='http://blog.rafagarcia.net/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' />  , me ha recordado de que os avise que la orden para actualizar Rubygems(paso 1) se usan 2 guiones que WordPress se ha emperrado en poner como si fuese uno largo.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.rafagarcia.net/2009/11/12/tus-gemas-al-dia-con-gemcutter/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Usemos 503 para nuestras páginas de mantenimiento</title>
		<link>http://blog.rafagarcia.net/2009/07/28/usemos-503-para-nuestras-paginas-de-mantenimiento/</link>
		<comments>http://blog.rafagarcia.net/2009/07/28/usemos-503-para-nuestras-paginas-de-mantenimiento/#comments</comments>
		<pubDate>Tue, 28 Jul 2009 11:24:33 +0000</pubDate>
		<dc:creator>Rafa García</dc:creator>
				<category><![CDATA[apache]]></category>
		<category><![CDATA[capistrano]]></category>
		<category><![CDATA[rails]]></category>

		<guid isPermaLink="false">http://blog.rafagarcia.net/?p=46</guid>
		<description><![CDATA[La mayor parte de la documentación que hay por ahí sobre como configurar Apache para poder usar la tarea de Capistrano deploy:web:disable es usar la directiva RewriteRule para ver si existe la página de mantenimiento. Aparentemente está bien, pero no es así porque no cambia el código de la respuesta. Los clientes recibirán un 200 [...]]]></description>
			<content:encoded><![CDATA[<p>La mayor parte de la documentación que hay por ahí sobre como configurar Apache para poder usar la tarea de Capistrano <em>deploy:web:disable</em> es usar la directiva <em>RewriteRule</em> para ver si existe la página de mantenimiento.</p>
<p>Aparentemente está bien, pero no es así porque no cambia el código de la respuesta. Los clientes recibirán un <em>200 OK</em>, indicando de que el servidor está funcionando como debe. El código de estado correcto debiera ser <em>503 Service Unavailable</em>. Con un 503, conseguiremos prevenir que los motores de búsqueda indexen nuestra página de mantenimiento, a los que usan nuestra API les haremos la vida mas fácil, las peticiones AJAX pueden ser tratadas correctamente cuando el site se ha caído, etc.</p>
<p>La configuración de apache para realizar esto es la siguiente:</p>
<script src="http://gist.github.com/157111.js"></script>
<p><span id="more-46"></span>El flag <em>redirect=503</em> parece un poco raro, aquí os pongo un extracto de la <a href="http://httpd.apache.org/docs/2.2/mod/mod_rewrite.html#redirect" target="_blank">sección de flags de la documentación de mod_rewrite</a>:</p>
<p style="padding-left: 30px;">While this is typically used for redirects, any valid status code can be given here.     If the status code is outside the redirect range (300-399), then the <em>Substitution</em> string is dropped and rewriting is stopped as if the <code>L</code> flag was used.</p>
<p>En definitiva, que a <em>RewriteRule</em> puedes ponerle como segundo argumento lo que sea y el flag <em>last</em> no es necesario porque se aplica automáticamente. Pongo como path &#8216;-&#8217; y además el flag <em>last</em> a modo informativo de todos modos.</p>
<p><br class="spacer_" /></p>
<p><strong>Nota</strong>: Esto es una traducción (muy) libre del artículo de Chris K. (http://www.shiftcommathree.com/articles/make-your-rails-maintenance-page-respond-with-a-503).</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.rafagarcia.net/2009/07/28/usemos-503-para-nuestras-paginas-de-mantenimiento/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Validando modelos no Active Record</title>
		<link>http://blog.rafagarcia.net/2009/07/06/validando-modelos-no-active-record/</link>
		<comments>http://blog.rafagarcia.net/2009/07/06/validando-modelos-no-active-record/#comments</comments>
		<pubDate>Mon, 06 Jul 2009 16:29:21 +0000</pubDate>
		<dc:creator>Rafa García</dc:creator>
				<category><![CDATA[rails]]></category>
		<category><![CDATA[activerecord]]></category>
		<category><![CDATA[validar]]></category>

		<guid isPermaLink="false">http://blog.rafagarcia.net/?p=1</guid>
		<description><![CDATA[Siempre que se hace un formulario de contacto tengo la misma necesidad, validarlo. ¿Teniendo las validaciones de AR para qué quiero reinventar la rueda? El otro día encontré una solución en un blog que me pareció interesante pero solo funcionaba con rails 2.2 aparentemente. Digo aparentemente porque el primer comentario me indicaba como apañarlo para [...]]]></description>
			<content:encoded><![CDATA[<p>Siempre que se hace un formulario de contacto tengo la misma necesidad, validarlo. ¿Teniendo las validaciones de AR para qué quiero reinventar la rueda?</p>
<p>El otro día encontré una solución en un <a href="http://www.neeraj.name/blog/articles/810-validating-non-activerecord-models-in-rails-2-2" target="_blank">blog</a> que me pareció interesante pero solo funcionaba con rails 2.2 aparentemente. Digo aparentemente porque el primer comentario me indicaba como apañarlo para rails 2.3.</p>
<p><span id="more-1"></span>El código del módulo es este y debemos guardarlo en un fichero dentro del directorio /lib de nuestra aplicación rails:<br />
 <script src="http://gist.github.com/141471.js"></script></p>
<p><br class="spacer_" /></p>
<p>Suponiendo que nuestro formulario de contacto tiene los campos &#8220;name&#8221;, &#8220;email&#8221;, &#8220;phone&#8221; y &#8220;body&#8221;, entonces nuestro modelo quedará así:<br />
 <script src="http://gist.github.com/141472.js"></script></p>
<p>He puesto en el método initialize la ristra de condiciones para que cuando el formulario no valide mantenga los datos.</p>
<p><br class="spacer_" /></p>
<p>Por último el código de nuestro controlador:<br />
 <script src="http://gist.github.com/141473.js"></script></p>
<p>Lo validamos como si de un modelo AR se tratara y si está bien entonces lo enviamos. En caso de no validar en la vista mostramos los errores como hacemos con cualquier modelo AR.</p>
<p><br class="spacer_" /></p>
<p>Con esto ya tenemos nuestro formulario de contacto validado como rails manda y queda inaugurado el blog.</p>
<p><br class="spacer_" /></p>
<p><strong>Nota</strong>: El autor ha sacado una gema con ese módulo &#8211; <a href="http://github.com/neerajdotname/active_record_no_table/tree/master" target="_blank">http://github.com/neerajdotname/active_record_no_table/tree/master</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.rafagarcia.net/2009/07/06/validando-modelos-no-active-record/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
