<?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>Anthony Dahanne's blog &#187; rails</title>
	<atom:link href="http://blog.dahanne.net/category/rails/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.dahanne.net</link>
	<description>Open Source Software, Java, Ruby, Agility</description>
	<lastBuildDate>Tue, 20 Jul 2010 13:11:30 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Soumission du projet WikiPlacesAndroid pour le concours SFR JTD</title>
		<link>http://blog.dahanne.net/2009/04/26/soumission-du-projet-wikiplacesandroid-pour-le-concours-sfr-jtd/</link>
		<comments>http://blog.dahanne.net/2009/04/26/soumission-du-projet-wikiplacesandroid-pour-le-concours-sfr-jtd/#comments</comments>
		<pubDate>Sun, 26 Apr 2009 21:52:59 +0000</pubDate>
		<dc:creator>anthony.dahanne</dc:creator>
				<category><![CDATA[android]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[rails]]></category>

		<guid isPermaLink="false">http://blog.dahanne.net/?p=137</guid>
		<description><![CDATA[Cà y est, aujourd'hui, comme le veut la tradition des  [...]]]></description>
			<content:encoded><![CDATA[<p>Cà y est, aujourd&#8217;hui, comme le veut la tradition des deadlines, tout s&#8217;est mis à planter, à ne plus marcher dans l&#8217;application que j&#8217;ai développé conjointement avec Romain, pour le concours <a href="http://www.sfrjtd.fr/content/wikiplacesandroid">SFR JTD, WikiPlacesAndroid</a>.<br />
Faut dire que j&#8217;ai voulu rajouter plein de fonctionnalités (upload d&#8217;images, redimensionnement d&#8217;images sur le téléphone) et là, des catastrophes à répétition : memory leaks sur le téléphone android qui vit très mal le redimensionnement d&#8217;images de 2MegaPixels, l&#8217;appli serveur Rails qui elle vit très mal la lecture des blobs en base de données MySQL, bref, un %*$ de Dimanche, comme on s&#8217;en passerait bien.<br />
Enfin, j&#8217;ai posté l&#8217;application pour le concours, avec du coup moins de fonctionnalités que prévu, en tout cas elle fonctionne et bug (presque) plus.<br />
Vous avez un téléphone Android ? Essayez donc notre application, ci jointe à ce billet !<br />
\!/ le serveur de l&#8217;application correspondant étant offline, vous ne pourrez pas&#8230; faire grand chose avec l&#8217;appli <img src='http://blog.dahanne.net/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' />  !<br />
<a href="http://blog.dahanne.net/wp-content/uploads/wikiplacesandroid.apk">Télécharger WikiPlacesAndroid</a> (développée avec le SDK 1.1)</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.dahanne.net/2009/04/26/soumission-du-projet-wikiplacesandroid-pour-le-concours-sfr-jtd/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>RailsCampParis 2 : le rendez vous de la communauté Ruby et Rails</title>
		<link>http://blog.dahanne.net/2009/03/07/railscampparis-2-le-rendez-vous-de-la-communaute-ruby-et-rails/</link>
		<comments>http://blog.dahanne.net/2009/03/07/railscampparis-2-le-rendez-vous-de-la-communaute-ruby-et-rails/#comments</comments>
		<pubDate>Sat, 07 Mar 2009 19:56:51 +0000</pubDate>
		<dc:creator>anthony.dahanne</dc:creator>
				<category><![CDATA[meeting]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">http://blog.dahanne.net/?p=110</guid>
		<description><![CDATA[Samedi 7 Mars avait lieu la 2ème édition du RailsCamp [...]]]></description>
			<content:encoded><![CDATA[<p>Samedi 7 Mars avait lieu la 2ème édition du RailsCampParis, cette fois ci dans les locaux de Sun, avenue de Iéna (souvenez l&#8217;an dernier c&#8217;était à <a href="http://lacantine.org">La Cantine</a>)<br />
Une bonne soixantaine de personnes était présente pour le démarrage de cette journée, à 10h30; l&#8217;accueil était très bien rodé, avec contrôle de l&#8217;identité des visiteurs, attribution d&#8217;un autocollant avec nom/prénom tags, pour faciliter les échanges entre participants, et café / petit déj copieux <img src='http://blog.dahanne.net/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /><br />
Après une bref intro et la présentation des sponsors, les personnes présentes se sont présentées, avec 3 tags (j&#8217;avais choisi JRuby, Rails, TDD)<br />
Dispersé sur 8 salles, les sujets ont commencé à émerger : beaucoup de merb, un peu de TDD/BDD, de la perf, de la scalabilité, bref, la journée s&#8217;annonce bien !<br />
Je me suis rendu aux sessions : </p>
<h3>&laquo;&nbsp;plugins préférés dans Rails&nbsp;&raquo;</h3>
<p> , les participants ont alors évoqué leurs plugins rails préférés et leurs utilisations ; on retiendra <a href="http://github.com/technoweenie/attachment_fu/tree/master">attachment_fu : pour l&#8217;upload des fichiers</a> ou encore <a href="http://thoughtbot.com/projects/paperclip">PaperClip</a>, Restful Authentification pour l&#8217;authentification.<br />
Quand aux plugins de test, en remplacement on retrouve RSpec, utilisé conjointement avec factory girl et shoulda (autre syntaxe que celle de RSpec de base); TestUnit peut s&#8217;utiliser avec Machinist, shoulda et faker (?)<br />
Bien entendu, Cucumber a été évoqué, car RSpec reste finalement trop technique pour un fonctionnel.<br />
Un petit retour sur <a href="http://github.com/thoughtbot/factory_girl/tree/master">Factory Girl</a> a été fait : factory girl permet de remplacer intelligemment les fixtures en YAML par des bouts de code (en Ruby); on utilise factory girls pour créer les objets à tester; que l&#8217;on persiste ou non (du coup un mock) dans la base&#8230; très intéressant ! </p>
<h3>présentation de Merb (par <a href="http://blog.shingara.fr/railscampparis-2-jy-etais-et-cetait-sympa.html">Cyril Mougel</a>)</h3>
<ul>
<li>ORM agnostique (Active Record, Data Mapper, etc&#8230;),</li>
<li>Javascript agnostique (JQuery, MooTools, etc&#8230;)</li>
<li>Comme Rails 2.2, compatible Rack</li>
<li>3 briques : merb-core, merb-more (le reste d&#8217;ActionPack), merb-plugins (ne sort pas simultanément avec les 2 autres, paquets de communication avec d&#8217;autres briques comme ActiveRecord, etc..)</li>
<li>mot clef &laquo;&nbsp;provides&nbsp;&raquo; permet de stipuler les formats de rendu des vue (.xml, .html, .json, etc..à plutot que &laquo;&nbsp;format=&nbsp;&raquo; en Rails</li>
<li>merb slices : déploiement d&#8217;une unique fonctionnalité (route au final) de l&#8217;application</li>
<h3>présentation de rails 3.0</h3>
<p><a href="http://yeastymobs.com">Nicolas Mérouze</a> est d&#8217;abord revenu sur un historique des fonctionnalités apparues dans rails et merb au cours des versions, pour en arriver au futur Rails 3; puis a exposé la vision des &laquo;&nbsp;poupées russes&nbsp;&raquo;, qui rappelait beaucoup certains concepts SOA de réutilisation du métier, des modèles à travers des services de plus haut niveau&#8230;<br />
Après avoir introduit <ah ref="http://adva-cms.org/">adva-cms (devenu adva-community)</a>, il a présenté son projet : Russian Dolls (vieux de 1 jour!), un plugin de Merb</p>
<p>Enfin, je me suis rendu à la table ronde Rack, où les différents participants ont évoqué ce qu&#8217;est Rack : une application &laquo;&nbsp;middleware&nbsp;&raquo; entre le serveur web et le framework Ruby. Pourquoi utiliser Rack ? par exemple pour gérer les routes en Ruby plutôt que dans un virtual host Apache (ainsi que que les accès à la page 404 ou autres); et ainsi garder la même conf quelque soit le serveur web en frontal, pratique aussi si on a  pas les droits sur la conf Apache ! Aussi, Rack permet de faire du routing entre différentes applications web Ruby.</p>
<p>Après j&#8217;ai dû partir, dommage, une session devait aborder en plus approfondi le thème des tests en Ruby&#8230; En tout cas l&#8217;organisation était parfaite, le &laquo;&nbsp;timeboxing&nbsp;&raquo; de 1h pour chaque session se prêtait très bien à l&#8217;événement, les pizzas, les boissons, les croissants, le tee shirt, vraiment, une excellente organisation ! J&#8217;ai de plus le sentiment que la communauté Rails se préoccupe de plus en plus de la qualité, les débats (ou trolls!) entre TestUnit et RSpec prouvent que les développeurs Rubyistes en  sont soucieux  et c&#8217;est tant mieux !!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.dahanne.net/2009/03/07/railscampparis-2-le-rendez-vous-de-la-communaute-ruby-et-rails/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Cours du soir JRuby</title>
		<link>http://blog.dahanne.net/2008/10/30/cours-du-soir-jruby/</link>
		<comments>http://blog.dahanne.net/2008/10/30/cours-du-soir-jruby/#comments</comments>
		<pubDate>Wed, 29 Oct 2008 22:28:38 +0000</pubDate>
		<dc:creator>anthony.dahanne</dc:creator>
				<category><![CDATA[java]]></category>
		<category><![CDATA[meeting]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">http://blog.dahanne.net/?p=60</guid>
		<description><![CDATA[Ce Mardi 28 Octobre, dans le cadre des cours du soir de [...]]]></description>
			<content:encoded><![CDATA[<p>Ce Mardi 28 Octobre, dans le cadre des cours du soir de <a href="http://planet.valtech.fr">Valtech</a>, j&#8217;ai présenté une démonstration de la librairie open source JRuby, implémentation 100% Java de Ruby.<br />
A l&#8217;aide de travaux pratiques, avec les 7 participants présents, nous avons pu :</p>
<ul>
<li>  faire un bref rappel du langage Ruby (pendant 1H20 : définition de classe, héritage, module, mixin)</li>
<li>découvrir Jirb, shell permettant de découvrir les classes Ruby et Java (dans un jar)</li>
<li>utiliser des classes Java avec du code Ruby</li>
<li>découvrir Netbeans 6.1, notamment ses facultés &laquo;&nbsp;Ruby&nbsp;&raquo;</li>
<li>en 30 minutes, créer un projet Ruby On Rails, avec 2 modèles, création en scaffold des triplets MVC</li>
<li>déployer cette application Ruby on Rails, (grâce aux taches rake de Netbeans qui permettent de créer un war à partir d&#8217;un projet RoR) sur un conteneur de servlets, Tomcat en l&#8217;occurence</li>
</ul>
<p>Vous pouvez télécharger, à condition de respecter la licence ci dessous, les tps zippés ainsi que la présentation, au format OpenDocument (à lire avec <a href="http://fr.openoffice.org">OpenOffice</a>), ou pdf; vous pouvez aussi choisir de juste consulter la présentation avec l&#8217;applet flash ci dessous.</p>
<p><OBJECT classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0" WIDTH="320" HEIGHT="240" id="CoursDuSoirJRuby" ALIGN=""><br />
<PARAM NAME=movie VALUE="http://blog.dahanne.net/wp-content/uploads/jruby.swf"> <PARAM NAME=quality VALUE=high> <PARAM NAME=bgcolor VALUE=#333399> <EMBED src="http://blog.dahanne.net/wp-content/uploads/jruby.swf" quality=high bgcolor=#333399 WIDTH="480" HEIGHT="360" NAME="CoursDuSoirJRuby" ALIGN="" TYPE="application/x-shockwave-flash" PLUGINSPAGE="http://www.macromedia.com/go/getflashplayer"></EMBED> </OBJECT> </p>
<ul>
<li>
<a href='http://blog.dahanne.net/wp-content/uploads/tps.zip'>TPs JRuby à télécharger</a></li>
<li><a href='http://blog.dahanne.net/wp-content/uploads/jruby.odp'>Présentation cours du soir JRuby, au format OpenDocument</a></li>
<li><a href='http://blog.dahanne.net/wp-content/uploads/jruby.pdf'>Présentation du cours JRuby, au format pdf</a></li>
</ul>
<p><strong><br />
Prochain rendez vous Ruby/Rails à <a href="http://paris.onrails.info/">Paris On Rails</a> !<br />
</strong></p>
<p><a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/2.0/fr/"><img alt="Creative Commons License" style="border-width:0" src="http://i.creativecommons.org/l/by-nc-sa/2.0/fr/88x31.png" /></a><br /><span xmlns:dc="http://purl.org/dc/elements/1.1/" href="http://purl.org/dc/dcmitype/Text" property="dc:title" rel="dc:type">Cours du soir JRuby</span> by <a xmlns:cc="http://creativecommons.org/ns#" href="http://blog.dahanne.net" property="cc:attributionName" rel="cc:attributionURL">Anthony Dahanne</a> est mis &#224; disposition selon les termes de la <a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/2.0/fr/">licence Creative Commons Paternit&#233;-Pas d&#8217;Utilisation Commerciale-Partage des Conditions Initiales &#224; l&#8217;Identique 2.0 France</a>.<br />Bas&#233;(e) sur une oeuvre &#224;<br />Les autorisations au-del&#224; du champ de cette licence peuvent &#234;tre obtenues &#224; <a xmlns:cc="http://creativecommons.org/ns#" href="http://blog.dahanne.net" rel="cc:morePermissions">http://blog.dahanne.net</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.dahanne.net/2008/10/30/cours-du-soir-jruby/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Retour sur le bar camp Rails du 17 Mai , à la Cantine (Paris)</title>
		<link>http://blog.dahanne.net/2008/05/21/retour-sur-le-bar-camp-rails-du-17-mai-a-la-cantine-paris/</link>
		<comments>http://blog.dahanne.net/2008/05/21/retour-sur-le-bar-camp-rails-du-17-mai-a-la-cantine-paris/#comments</comments>
		<pubDate>Wed, 21 May 2008 19:12:30 +0000</pubDate>
		<dc:creator>anthony.dahanne</dc:creator>
				<category><![CDATA[meeting]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">http://blog.dahanne.net/2008/05/21/retour-sur-le-bar-camp-rails-du-17-mai-a-la-cantine-paris/</guid>
		<description><![CDATA[Intéressé depuis quelque temps par le monde de Ruby e [...]]]></description>
			<content:encoded><![CDATA[<p>Intéressé depuis quelque temps par le monde de Ruby et Ruby on Rails, j&#8217;ai décidé de m&#8217;inscrire au BarCamp Rails ce Samedi 17 Mai à Paris<br />
A partir de 10h, les organisateurs ont mettent en place un tableau où les pesonnes désirant exposer leur travail ou découverte s&#8217;inscrivent.<br />
(il y a 5 espaces disponibles à La Cantine, apparemment il faisait chaud à l&#8217;étage!; et les créneaux horaires durent de 1 à 2 heures)<br />
Ensuite, après avoir présenté brièvement Silicon Sentier et d&#8217;autres sponsors, les organisateurs ont passé le micro à chacun des participants (une centaine quand même !) afin qu&#8217;ils se présentent : prénom + tags (j&#8217;ai choisi les tags développeur Java J2EE, d&#8217;autres tags comme &laquo;&nbsp;fille&nbsp;&raquo; ou &laquo;&nbsp;windows&nbsp;&raquo; étaient plus originaux !)<br />
Les personnes s&#8217;étant inscrites sur le tableau démarrèrent dès 10h30.<br />
Il y en avait pour tout le monde : débutant comme expérimenté ! (présentation ruby on rails, ruby en entreprise, facebook on rails !, etc&#8230;)<br />
Voici mon choix pour la journée :</p>
<h3>10:30 : présentation de l&#8217;intégration google maps dans rails avec <a href="http://geokit.rubyforge.org">geokit</a>; par <a href="http://www.xilinus.com ">Sébastien Gruhier</a></h3>
<p>Apres une présentation du projet, nous avons procédé à la  <a href="http://code.google.com/apis/maps/signup.html">génération d&#8217;une api key chez google maps</a>, afin de pouvoir utiliser l&#8217;API (je crois que l&#8217;on a droit à 10000 requêtes par jour, à vérifier).<br />
Nous avons ensuite créé un site rails, en ayant pris soin auparavant d&#8217;installer les gems de geokit et d&#8217;un module d&#8217;authentification.<br />
Ensuite nous avons testé l&#8217;API par une console Rails, et enfin nous avons codé nos premiers fcihiers Rails avec des cartes.<br />
L&#8217;API geokit permet de faire des travaux de geolocalisation (par IP) et de récupération  de coordonnées, mais elle ne permet pas de générer des cartes gogole maps (en fait lors de la session nousa vons du coder du javascript pour cécupérer des cartes&#8230;)<br />
Pour ceux qui craignent le Javascript, passez votre chemin donc, et dirigez vous plutôt vers un wrapper (comme YM4R sur rubyforge wrapper javascript)</p>
<h3>14:30 : présentation jruby par <a href="http://yeastymobs.com/">Nicolas Mérouze</a></h3>
<p>nous avons installé jruby bin (.zip ou tar gz).<br />
A l&#8217;attaque, en lançant le script bat jruby.bat (ou jruby.sh)on peut d&#8217;ores et déjà installer des gems avec<br />
<code>jruby -S gem install un_gem_ruby</code><br />
Plus généralement,<br />
<code>jruby -S "commande ruby"</code><br />
Nicolas nous a montré beaucoup d&#8217;exemples sur Ruby qui utilise Java (normal il travaille sur un projet qui utilise des librairies java), peu dans l&#8217;inverse (dommage); sur le web, j&#8217;ai pu remarquer cet<a href=" http://java.sun.com/developer/technicalArticles/scripting/jruby/#ej"> article qui permet de découvrir Jruby pour intégrer du Ruby dans Java</a></p>
<h3>16:30 présentation faille sécurité ruby/ecommerce par <a href="http://www.webpulser.com">Webpulser</a></h3>
<p>Pendant cette session les participants ont pu échanger sur leurx expériences Ruby, ensuite l&#8217;équipe technique de Webpulser ont fait un petit tour des failles de sécurité en Ruby :<br />
*Injection SQL : en donnant un &#8216; à la fin d&#8217;une requete GET ,des attaquants pourraient terminer une clause SQL, ==> on utilise le ? à la printf de C pour échapper les caracteres spéciaux<br />
*XSS en donnant du javascript dans l&#8217;url; on évite çà avec <%h= %> qui échappe le html<br />
etc&#8230;</p>
<p>Sans parler de l&#8217;organisation qui était vraiment pro, un accueil chaleureux, bref, ce <a href="http://barcamp.org/RailsCampParis">BarCampRails  parisien</a> vallait vraiment le détour !</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.dahanne.net/2008/05/21/retour-sur-le-bar-camp-rails-du-17-mai-a-la-cantine-paris/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Port of an J2EE application (with Hibernate) to Ruby on Rails (1.2.3)</title>
		<link>http://blog.dahanne.net/2008/04/22/port-of-an-j2ee-application-with-hibernate-to-ruby-on-rails-123/</link>
		<comments>http://blog.dahanne.net/2008/04/22/port-of-an-j2ee-application-with-hibernate-to-ruby-on-rails-123/#comments</comments>
		<pubDate>Mon, 21 Apr 2008 22:18:13 +0000</pubDate>
		<dc:creator>anthony.dahanne</dc:creator>
				<category><![CDATA[rails]]></category>
		<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">http://blog.dahanne.net/2008/04/22/port-of-an-j2ee-application-with-hibernate-to-ruby-on-rails-123/</guid>
		<description><![CDATA[Last week, I ported a J2EE application, using Hibernate [...]]]></description>
			<content:encoded><![CDATA[<p>Last week, I ported a J2EE application, using Hibernate for persistence and Capestry for the MVC part of the application to Ruby.<br />
I logically choosed Ruby on Rails as it is the main Web framework for Ruby.<br />
In this post, I describe how I did to perform such a port&#8230;<br />
!Important! the application I first wrote this application in Franch, I tried to refactor the code in English, but&#8230; I haven(t finished at this time, &#8230; sorry folks !</p>
<h3>Introducing the bank on line application</h3>
<p>This application is composed of 3 models : Client, Compte (account) and Operation<br />
A client has n Comptes (through reference_client) and a Compte has n Operations (through compte_id) :<br />
<img src="http://blog.dahanne.net/kjkljkl" alt="Bank on line" /><br />
The application allow the user to :<br />
*login<br />
*see a list of his accounts (after being logged in)<br />
*see the details of one of his account (actually a list of the operations on an account)<br />
*order a transfer between 2 accounts provided that the balance is positive (and the accounts exist)<br />
Quite simple from a user point of view&#8230;</p>
<h3>Creating the application with Ruby on Rails 1.2.3</h3>
<p>The best way to port this new application to RoR, was to create a new RoR project<br />
<code>rails bankonline -d sqlite3</code><br />
(by the way, I was using the sqlite3 database, to allow an easy installation of the application, the J2EE application was using HSQLDB)<br />
<code>cd bankonline</code><br />
I was using for this <a href="http://www.aptana.com/rails/">Rad Rails visual editor</a> on a windows platform (no comment&#8230;)<br />
The first step to port this application was to create the 3 models.<br />
<code>ruby script/generate model Client</code><br />
<code>ruby script/generate model Compte</code><br />
<code>ruby script/generate model Operation</code><br />
Then I put the contraints on each of these models (the has_many and belongs_to relationships to stick to my diagram), editing their definition files in app/models and also the database definition files, in db/migrate<br />
Once this is done, I can run<br />
<code>rake db:migrate</code><br />
to load all my db/migrate scripts. (in case I want to revert the changes, I can use rake db:migrate VERSION=0, or VERSION=1 if only want to reverse the migration after the script)</p>
<p>To fill the database with data, I add another migration script :<br />
<code>ruby script/generate migration add_data</code><br />
I edit it to add some lines in the database and then I migrate :<br />
<code>rake db:migrate</code></p>
<p>Then the 3 corresponding controllers :<br />
<code>ruby script/generate controller login</code><br />
<code>ruby script/generate controller gestion</code></p>
<h3>Implementing the login system (session based)</h3>
<p>For this, I took example on the depot application login system, from the pragmatic programmers&#8217; book &laquo;&nbsp;Agile Web Development with Rails&nbsp;&raquo;, but I chose to use not encrypted passwords.<br />
I also chose to use database based sessions, so I edited the config/environment.rb file, line 31, to allow :<br />
config.action_controller.session_store = :active_record_store<br />
Then, I add to create a new table to hold the session data :<br />
<code>rake db:sessions:create</code></p>
<p>Of course, you need a little bit of code in your app/controllers/login_controller.rb, you have to implement the login and logout methods (or actions, to speak rails); you may also notice the apparition of a &laquo;&nbsp;before_filter&nbsp;&raquo; call.<br />
The authorize filter is defined in the app/controllers/application.rb file, it will be loaded for every controller, and will check tha t a valid client is in session, or else, it will redirect to the login action, in the login controller.<br />
Finally, you will have to define the views, both in app/views/login, they&#8217;re called login.rhtml and logout.rhtml<br />
One last thing : you also need to modify the layout, in app/views/layouts/login.rhtml to display the flash notice before the yield (which includes the display of the view)<br />
<code></p>
<p style="color: green"><%= flash[:notice] %></p>
<p></code></p>
<h3>Implementing the account listings and the transfer functionality</h3>
<p>We have to code the controller, GestionController, located in gestion_controller.rb<br />
You&#8217;ll notice that I&#8217;ve replaced the service class in Hibernate by methods inside the controller in Rails, I didn&#8217;t want to put it in the model, since the model can&#8217;t know how to transfer money.(I think we can discuss that point, but as long as the helpers are dedicated to the view&#8230;)<br />
I&#8217;ve also used exceptions to raise errors (if the origin account balance is smaller than the transfer amount)<br />
You also have to include the flash notice in the layout, app/views/layouts/gestion.rhtml</p>
<p>That&#8217;s it !<br />
launch your rails app<br />
<code>ruby script/server</code><br />
and try it out in your web browser at : http://localhost:3000/login/login</p>
<p>In a few days I&#8217;ll complete this article with the tests and fitnesse fixtures &#8230;<br />
To continue &#8230;</p>
<p><a href='http://blog.dahanne.net/2008/04/22/port-of-an-j2ee-application-with-hibernate-to-ruby-on-rails-123/first-version-of-bank-online-ror/' rel='attachment wp-att-31' title='First version of Bank online RoR'>First version of Bank online RoR to download </a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.dahanne.net/2008/04/22/port-of-an-j2ee-application-with-hibernate-to-ruby-on-rails-123/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
