<?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>Développement Web Libre &#187; rails</title>
	<atom:link href="http://www.sbnet.fr/tag/rails/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.sbnet.fr</link>
	<description>xhtml, css, javascript, php et ruby</description>
	<lastBuildDate>Wed, 21 Jul 2010 11:57:47 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>fr</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Apache 2.0 et Mongrel cluster</title>
		<link>http://www.sbnet.fr/2007/04/12/apache-20-et-mongrel-cluster/</link>
		<comments>http://www.sbnet.fr/2007/04/12/apache-20-et-mongrel-cluster/#comments</comments>
		<pubDate>Thu, 12 Apr 2007 11:07:43 +0000</pubDate>
		<dc:creator>Stéphane</dc:creator>
				<category><![CDATA[Informatique]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[rails]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[On trouve des guides pour faire cohabiter un cluster Mongrel avec Apache 2.2 mais peu traitent d&#8217;Apache 2.0 qui est installé par défaut sur une distribution Ubuntu Server. Rien de bien compliqué, ça ressemble beaucoup à l&#8217;installation avec Apache 2.2 décrite sur le site de Mongrel.

Commençons par installer mongrel_cluster si ce n&#8217;est pas déjà fait
sudo [...]]]></description>
			<content:encoded><![CDATA[<p>On trouve des guides pour faire cohabiter un cluster Mongrel avec Apache 2.2 mais peu traitent d&#8217;Apache 2.0 qui est installé par défaut sur une distribution Ubuntu Server. Rien de bien compliqué, ça ressemble beaucoup à l&#8217;installation avec Apache 2.2 décrite sur le <a href="http://mongrel.rubyforge.org/docs/apache.html" hreflang="en">site de Mongrel</a>.<br />
<span id="more-109"></span></p>
<h3>Commençons par installer mongrel_cluster si ce n&#8217;est pas déjà fait</h3>
<div style="overflow: auto;"><pre class="bash" id="geshi" style="color: #fff; border-left: 5px solid #900; background-color:#000;">sudo gem install mongrel_cluster</pre></div>
<p>Puis, pour configurer un cluster de 3 serveurs accessibles sur les ports 8000, 8001 et 8002 :</p>
<div style="overflow: auto;"><pre class="bash" id="geshi" style="color: #fff; border-left: 5px solid #900; background-color:#000;">sudo mongrel_rails cluster::configure -e production \
-p <span class="nu0">8000</span> -N <span class="nu0">3</span> -c /var/www/apps/testapp -a <span class="nu0">127.0</span><span class="nu0">.0</span><span class="nu0">.1</span> \
--user mongrel --group mongrel</pre></div>
<p>Vous pouvez changer la dernière ligne en fonction de vos besoins si vous n&#8217;avez pas d&#8217;utilisateur (ou de groupe) nommé <em>mongrel</em>.</p>
<p>Maintenant que c&#8217;est fait, lançons les serveurs et vérifions que tout fonctionne bien en nous connectant directement sur chacun des ces ports.</p>
<div style="overflow: auto;"><pre class="bash" id="geshi" style="color: #fff; border-left: 5px solid #900; background-color:#000;">sudo mongrel_rails cluster::start</pre></div>
<h3>Configuration d&#8217;Apache</h3>
<p>Apache 2.0 n&#8217;a pas de module poxy_balancer, l&#8217;astuce que nous utiliserons dans ce cas est de passer par la fonction de mapping aléatoire du module de ré-ecriture d&#8217;adresses.</p>
<p>Nous avons donc trois instances de mongrel tournant sur les ports 8000, 8001 et 8002, nous devons créer un fichier de mapping de ces trois ports <em>map.txt</em> contenant :</p>
<div style="overflow: auto;"><pre class="xml" id="geshi" style="color: #fff; border-left: 5px solid #900; background-color:#000;">ports  8000|8001|8002</pre></div>
<p>Puis voici la configuration de notre serveur virtuel :</p>
<div style="overflow: auto;"><pre class="xml" id="geshi" style="color: #fff; border-left: 5px solid #900; background-color:#000;">ProxyRequests Off
ProxyPassReverse / http://localhost:8000/
ProxyPassReverse / http://localhost:8001/
ProxyPassReverse / http://localhost:8002/
ProxyPreserveHost On
RewriteEngine On
RewriteMap  servers rnd:/chemin/vers/le/fichier/map.txt
RewriteRule ^/(images|stylesheets|javascripts)/?(.*) $0 [L]
RewriteRule ^/(.*)$ http://localhost:${servers:ports}/$1 [P,L]</pre></div>
<p>Voila, c&#8217;est tout. Relancez votre serveur web. Vous pouvez aussi lancer le cluster mongrel au démarrage de votre machine (voir du coté de update-rc.d)</p>
<p>Pour plus d&#8217;infos n&#8217;hésitez pas à consulter le <a href="http://www.oreilly.fr/catalogue/2354020112" hreflang="fr">focus sur Mongrel</a> des édition <a href="http://www.oreilly.fr/" hreflang="fr">O&#8217;Reilly</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.sbnet.fr/2007/04/12/apache-20-et-mongrel-cluster/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Toujours rediriger vers la même page avec Rails</title>
		<link>http://www.sbnet.fr/2006/10/24/toujours-rediriger-vers-la-meme-page-avec-rails/</link>
		<comments>http://www.sbnet.fr/2006/10/24/toujours-rediriger-vers-la-meme-page-avec-rails/#comments</comments>
		<pubDate>Tue, 24 Oct 2006 11:18:43 +0000</pubDate>
		<dc:creator>Stéphane</dc:creator>
				<category><![CDATA[Informatique]]></category>
		<category><![CDATA[rails]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Parfois il peut être utile de toujours afficher la même page d&#8217;un site pour indiquer qu&#8217;une maintenance est en cours par exemple. Voici un méthode simple qui permet de le faire.

L&#8217;ajout de deux lignes au fichier routes.rb qui est dans le répertoire config de votre application :
ActionController::Routing::Routes.draw do &#124;map&#124;
# The priority is based upon order [...]]]></description>
			<content:encoded><![CDATA[<p>Parfois il peut être utile de toujours afficher la même page d&#8217;un site pour indiquer qu&#8217;une maintenance est en cours par exemple. Voici un méthode simple qui permet de le faire.<br />
<span id="more-99"></span><br />
L&#8217;ajout de deux lignes au fichier routes.rb qui est dans le répertoire config de votre application :</p>
<div style="overflow: auto;"><pre class="ruby" id="geshi" style="color: #fff; border-left: 5px solid #900; background-color:#000;"><span class="re2">ActionController::Routing::Routes</span>.<span class="me1">draw</span> <span class="kw1">do</span> |map|
<span class="co1"># The priority is based upon order of creation: first created -&gt; highest priority.</span>
 
<span class="co1"># Commenter pour annuler la redirection</span>
map.<span class="me1">connect</span> <span class="st0">''</span>, <span class="re3">:controller</span> =&gt; <span class="st0">'maintenance'</span>
map.<span class="me1">connect</span> <span class="st0">':en_maintenance'</span>, <span class="re3">:controller</span> =&gt; <span class="st0">'maintenance'</span>, <span class="re3">:requirements</span> =&gt; <span class="br0">{</span> <span class="re3">:en_maintenance</span> =&gt; /.<span class="me1">*</span>/ <span class="br0">}</span>
 
...</pre></div>
<p>Ici on redirige toujours vers le contrôleur <em>maintenance</em>, à vous d&#8217;adapter en fonction de vos besoins.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sbnet.fr/2006/10/24/toujours-rediriger-vers-la-meme-page-avec-rails/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Trucs et astuces pour débuter avec Ruby on Rails</title>
		<link>http://www.sbnet.fr/2006/07/20/trucs-et-astuces-pour-debuter-avec-ruby-on-rails/</link>
		<comments>http://www.sbnet.fr/2006/07/20/trucs-et-astuces-pour-debuter-avec-ruby-on-rails/#comments</comments>
		<pubDate>Thu, 20 Jul 2006 11:39:13 +0000</pubDate>
		<dc:creator>Stéphane</dc:creator>
				<category><![CDATA[Informatique]]></category>
		<category><![CDATA[rails]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Voici quelques trucs et astuces qui m&#8217;on permis de débuter plus facilement avec Rails. Ce billet est la traduction d&#8217;un article présent sur le wiki de Ruby on Rails.

Opérations de base nécéssaires pour faire une application Rails :

Pour créer une application il faut utiliser la commande &#8216;rails nomdemonsiteweb&#8217;
Ensuite, pour créer les controlleurs et les modèles [...]]]></description>
			<content:encoded><![CDATA[<p>Voici quelques trucs et astuces qui m&#8217;on permis de débuter plus facilement avec Rails. Ce billet est la traduction d&#8217;un <a href="http://wiki.rubyonrails.com/rails/pages/TipSheetForBeginners" hreflang="en">article</a> présent sur le <a href="http://wiki.rubyonrails.org/rails" hreflang="en">wiki de Ruby on Rails</a>.<br />
<span id="more-94"></span></p>
<h3>Opérations de base nécéssaires pour faire une application Rails :</h3>
<ul>
<li>Pour créer une application il faut utiliser la commande &#8216;rails nomdemonsiteweb&#8217;</li>
<li>Ensuite, pour créer les controlleurs et les modèles : &#8216;ruby script/generate type nom&#8217; où type est soit &#8216;controller&#8217; ou &#8216;model&#8217; et &#8216;nom&#8217; est le nom de ce que vous créez.</li>
</ul>
<h3>A connaître sur :</h3>
<ul>
<li>Les table (schema) dans la base de données : Nom au pluriel, avec des underscores à la place d&#8217;espaces entre les mots, comme item_lignes.</li>
<li>Les modèles : Nom au singulier, première lettre de chaque mots en majuscule comme : ItemLigne.
<ul>
<li>La validation des données se fait ici.</li>
<li>Décrit aussi les relations entre les differentes tables :
<ul>
<li>Les modèles contiennent des commandes qui décrivent les relations qu&#8217;il existe entre les tables comme par exemple : <code>belongs_to</code> et <code>has_many</code> . Rails en deduira alors les connections.</li>
<li><code>belongs_to</code> (appartient_a en français, un modèle Histoire appartient à un Auteur). Lorsqu&#8217;une table est liée à une autre table par <code>belongs_to</code>, vous pouvez utiliser les champs de cette table en ajoutant le nom de cette relation au nom de la classe, par exemple : si produit appartient à categorie, dans une vue qui est en relation avec produit, on peut obtenir la catégorie de cette façon : produit.categorie.nom.</li>
<li><code>has_many</code> un Auteur a_beacoup d&#8217;Histoires.</li>
</ul>
</li>
<li>Les noms au pluriel ont leur importance, faites attention (spécialement avec le mots en français) de mettre le bon nombre de s. Par exemple, la table souris sera automatiquement associée à la classe souri (sans le s) par rails. Par contre, avec des noms en anglais c&#8217;est plus simple, rails connait les bons pluriels à utiliser, il sait par exemple associer la classe child à la table children.</li>
</ul>
</li>
<li>Les controlleurs (Nom au singulier, sans lettre capitale)
<ul>
<li>Centralise la logique, dit ce qu&#8217;il faut faire où il faut le faire. Un peu comme : &laquo;&nbsp;si le paramètre n&#8217;est pas valide, envoyer une erreur sur la validation&nbsp;&raquo;</li>
<li>Prépare les variables à afficher dans les vues.
<ul>
<li>Par exemple, la commande <code>find(:all)</code> prépare une variable contenant les données d&#8217;une table.</li>
</ul>
</li>
</ul>
</li>
<li>Les vues
<ul>
<li>Génere les pages à afficher. En ruby, ces pahes sont avec l&#8217;extension .rhtml</li>
<li>Utilise les variables préparées par le controleur et les affiches
<ul>
<li>Les variables accessibles depuis la vue doivent avoir un @ au début ()</li>
</ul>
</li>
<li><code>&lt;%= debug(@variableName) %&gt;</code> est très utile pour afficher des informations sur une variable, elle retourne <code>&lt;hr /&gt;</code> si la variable n&#8217;existe pas.</li>
<li>Le scaffold crée des liens edit, show, et delete dans une nouvelle vue. Pour remplacer le mots &#8217;show&#8217; par autre chose, (Ici, on utilise le nom du produit et le h() permet de traiter les eventuels codes html présents dans ce nom) faites :<br />
<code>&lt;%=<br />
hname = h(product.name)<br />
link_to(hname, :action =&gt; 'show', :id =&gt; product)<br />
%&gt;</code></li>
</ul>
</li>
</ul>
<h3>Divers</h3>
<ul>
<li>Quelquefois il faut vider les sessions dans le répertoire <code>/tmp/</code> si des erreurs 404 commence à se produire.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.sbnet.fr/2006/07/20/trucs-et-astuces-pour-debuter-avec-ruby-on-rails/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Un petit tour d&#8217;horizon des hébergeurs Rails</title>
		<link>http://www.sbnet.fr/2006/06/20/un-petit-tour-d-horizon-des-hebergeurs-rails/</link>
		<comments>http://www.sbnet.fr/2006/06/20/un-petit-tour-d-horizon-des-hebergeurs-rails/#comments</comments>
		<pubDate>Tue, 20 Jun 2006 16:20:58 +0000</pubDate>
		<dc:creator>Stéphane</dc:creator>
				<category><![CDATA[Informatique]]></category>
		<category><![CDATA[rails]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Ça fait quelques temps que j&#8217;entends parler de RoR (Ruby on Rails) et comme beaucoup, j&#8217;ai testé et ce fut la claque : RoR j&#8217;ador&#8216;. Faire son application en utilisant InstantRails en local c&#8217;est plutôt pas mal mais un jour ou l&#8217;autre il faudra bien l&#8217;héberger quelque part. Hormis prendre un serveur dédié, souvent plus [...]]]></description>
			<content:encoded><![CDATA[<p>Ça fait quelques temps que j&#8217;entends parler de RoR (Ruby on Rails) et comme beaucoup, j&#8217;ai testé et ce fut la claque : <em>RoR j&#8217;ador</em>&#8216;. Faire son application en utilisant <a href="http://instantrails.rubyforge.org/wiki/wiki.pl" hreflang="en" title="instantrails">InstantRails</a> en local c&#8217;est plutôt pas mal mais un jour ou l&#8217;autre il faudra bien l&#8217;héberger quelque part. Hormis prendre un serveur dédié, souvent plus cher et demandant pas mal de travail supplémentaire, il existe quelques hebergeurs proposant du mutualisé <em>compatible</em> Rails, en voici quelques-uns :<br />
<span id="more-93"></span><br />
Les hébergeurs Français :</p>
<ul>
<li><a href="http://www.alwaysdata.com/" hreflang="fr">Alwaysdata</a> &#8211; Payant mais une offre gratuite existe.</li>
<li><a href="http://www.typhon.net/OffreRails" hreflang="fr">Typhon</a> &#8211; Payant &#8211; Sur demande</li>
<li><a href="http://www.s6n.com/" hreflang="fr">s6n</a> &#8211; Payant</li>
<li><a href="http://www.peewi.org" hreflang="fr">Peewi</a> &#8211; Payant (Hébergeur associatif)</li>
<li><a href="http://www.ovh.com" hreflang="fr">Ovh.com</a> : Des <a href="http://guides.ovh.net/UtilisationRubyOnRails" hreflang="fr">tests</a> sont en cours</li>
</ul>
<p>Les hébergeurs étrangers :</p>
<ul>
<li><a href="http://www.hostingrails.com/" hreflang="en">hostingrails.com</a> &#8211; Payant &#8211; un mois gratuit (sans obligation de renouveler)</li>
<li><a href="http://blackcurranthost.co.uk/" hreflang="en">blackcurrant hosting</a> &#8211; Gratuit (En échange vous devez participer à leur forum)</li>
<li><a href="http://www.railsplayground.com/" hreflang="en">railsplayground.com</a> &#8211; Payant</li>
<li><a href="http://www.textdrive.com/hosting" hreflang="en">textdrive.com</a> &#8211; Payant</li>
<li><a href="http://www.site5.com/hosting/rails.php" hreflang="en">site5.com</a> &#8211; Payant</li>
<li><a href="http://www.hostmysite.com/rails/" hreflang="en">hostmysite.com</a> &#8211; Essais gratuit</li>
<li><a href="http://www.dreamhost.com/shared/comparison.html" hreflang="en">dreamhost.com</a> &#8211; Payant</li>
<li><a href="http://www.ambitiouslemon.com/" hreflang="en">ambitiouslemon.com</a> &#8211; Gratuit mais ils n&#8217;acceptent plus les inscriptions pour l&#8217;instant</li>
<li><a href="http://www.freeonrails.com/hosting" hreflang="en">freeonrails.com</a> &#8211; Gratuit, les inscriptions sont soumises à validation</li>
<li><a href="http://www.bleunote.net/packages.php" hreflang="en">bleunote</a> &#8211; Payant</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.sbnet.fr/2006/06/20/un-petit-tour-d-horizon-des-hebergeurs-rails/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
