<?xml version="1.0" encoding="UTF-8" ?>
<rdf:RDF
  xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
  xmlns:admin="http://webns.net/mvcb/"
  xmlns:content="http://purl.org/rss/1.0/modules/content/"
  xmlns="http://purl.org/rss/1.0/">

<channel rdf:about="http://thecaribbeanweblog.com/index.php/">
  <title>The Caribbean Weblog - Commentaires</title>
  <description><![CDATA[This blog is continuing @ <a href="http://christophemaximin.com/">http://christophemaximin.com</a> <!--:%s/^M/\="\&lt;CR&gt;"/g-->]]></description>
  <link>http://thecaribbeanweblog.com/index.php/</link>
  <dc:language>fr</dc:language>
  <dc:creator></dc:creator>
  <dc:rights></dc:rights>
  <dc:date>2007-01-27T02:43:58+01:00</dc:date>
  <admin:generatorAgent rdf:resource="http://www.dotclear.net/" />
  
  <sy:updatePeriod>daily</sy:updatePeriod>
  <sy:updateFrequency>1</sy:updateFrequency>
  <sy:updateBase>2007-01-27T02:43:58+01:00</sy:updateBase>
  
  <items>
  <rdf:Seq>
    <rdf:li rdf:resource="http://thecaribbeanweblog.com/index.php/2007/01/22/124-rails-with_scope-find-do#c355" />
  <rdf:li rdf:resource="http://thecaribbeanweblog.com/index.php/2007/01/22/124-rails-with_scope-find-do#c354" />
  <rdf:li rdf:resource="http://thecaribbeanweblog.com/index.php/2007/01/22/124-rails-with_scope-find-do#c351" />
  <rdf:li rdf:resource="http://thecaribbeanweblog.com/index.php/2007/01/22/124-rails-with_scope-find-do#c344" />
  <rdf:li rdf:resource="http://thecaribbeanweblog.com/index.php/2007/01/22/124-rails-with_scope-find-do#c341" />
  <rdf:li rdf:resource="http://thecaribbeanweblog.com/index.php/2007/01/22/124-rails-with_scope-find-do#c340" />
  <rdf:li rdf:resource="http://thecaribbeanweblog.com/index.php/2007/01/22/124-rails-with_scope-find-do#c339" />
  </rdf:Seq>
  </items>
</channel>

<item rdf:about="http://thecaribbeanweblog.com/index.php/2007/01/22/124-rails-with_scope-find-do#c355">
  <title>Rails : with_scope :find =&gt; {} do - Christophe</title>
  <link>http://thecaribbeanweblog.com/index.php/2007/01/22/124-rails-with_scope-find-do#c355</link>
  <dc:date>2007-01-27T02:43:58+01:00</dc:date>
  <dc:creator>Christophe</dc:creator>
  <description>Je ne suis pas fana de la gestion des erreurs quand un utilisateur essaie de tricher, donc non il n'y a pas ici de gestion d'exception. 

Dans l'exemple suivant, nous avons une table d'articles, qui appartiennent à des users. Nous sommes dans le controller des articles. Cette méthode sert à...</description>
  <content:encoded><![CDATA[<p>Je ne suis pas fana de la gestion des erreurs quand un utilisateur essaie de tricher, donc non il n'y a pas ici de gestion d'exception. <br />
<br />
Dans l'exemple suivant, nous avons une table d'articles, qui appartiennent à des users. Nous sommes dans le controller des articles. Cette méthode sert à modifier un article.<br />
<br />
<pre>
  def modifier
    @article = Article.find_by_id_and_user_id(params[:id], session[:user][:id])
    if request.method == :post and @article.update_attributes(params[:article])
      flash[:notice] = 'Les informations concernant cet article ont bien été modifiées'
      redirect_to :action =&gt; 'liste'
    end
  end
</pre>
<em>"@article = Article.find_by_id_and_user_id(params[:id], session[:user][:id])"</em> permet de sélectionner l'article quand id = params[:id] et user_id = session[:user][:id], pour le dire joliement.<br />
Donc l'utilité est déjà de sélectionner un article seulement s'il appartient bien à un utilisateur donné.
Ensuite, si la requete est envoyée en post, et que les champs ont été updatés correctement, ça enregistre une notice de succès et ça redirige ailleurs.<br />
Donc, si la requete a été envoyée en get ou qu'il y a une erreur (avec les validateurs la plupart du temps) lors de l'updatage des champs, ça renvoie la vue <code>articles/modifier.rhtml</code>.</p>
<p>En conclusion, les "dynamics finders" sont pas ZE REVOLUTION qui change le sens de rotation de la terre, mais moi je trouve ça plus que sympa.</p>]]></content:encoded>
</item>
<item rdf:about="http://thecaribbeanweblog.com/index.php/2007/01/22/124-rails-with_scope-find-do#c354">
  <title>Rails : with_scope :find =&gt; {} do - Matt.Rixx</title>
  <link>http://thecaribbeanweblog.com/index.php/2007/01/22/124-rails-with_scope-find-do#c354</link>
  <dc:date>2007-01-26T19:24:15+01:00</dc:date>
  <dc:creator>Matt.Rixx</dc:creator>
  <description>J'avoue que ca m'interresserait d'avoir un exemple relativement concret d'utilisation de ces méthodes pour voir ce que ca donne....</description>
  <content:encoded><![CDATA[<p>J'avoue que ca m'interresserait d'avoir un exemple relativement concret d'utilisation de ces méthodes pour voir ce que ca donne.</p>]]></content:encoded>
</item>
<item rdf:about="http://thecaribbeanweblog.com/index.php/2007/01/22/124-rails-with_scope-find-do#c351">
  <title>Rails : with_scope :find =&gt; {} do - kik</title>
  <link>http://thecaribbeanweblog.com/index.php/2007/01/22/124-rails-with_scope-find-do#c351</link>
  <dc:date>2007-01-26T14:06:55+01:00</dc:date>
  <dc:creator>kik</dc:creator>
  <description>"A propos d'ActiveRecord, comment se gère les jointures sur plusieurs tables alors qu'une table est censé être représenté par un objet"

à la méthode find de ActiveRecord::Base, tu peux passer un option :joins (pour un LEFT JOIN) ou :include (pour un LEFT OUTER JOIN), mais je ne...</description>
  <content:encoded><![CDATA[<p>&quot;A propos d'ActiveRecord, comment se gère les jointures sur plusieurs tables alors qu'une table est censé être représenté par un objet&quot;<br />
<br />
à la méthode find de ActiveRecord::Base, tu peux passer un option :joins (pour un LEFT JOIN) ou :include (pour un LEFT OUTER JOIN), mais je ne les ai pas essayé perso.<br />
<br />
  C'est vrai que du coup, le résultat sort du champs de l'objet même...<br />
</p>]]></content:encoded>
</item>
<item rdf:about="http://thecaribbeanweblog.com/index.php/2007/01/22/124-rails-with_scope-find-do#c344">
  <title>Rails : with_scope :find =&gt; {} do - Matt.Rixx</title>
  <link>http://thecaribbeanweblog.com/index.php/2007/01/22/124-rails-with_scope-find-do#c344</link>
  <dc:date>2007-01-23T20:24:56+01:00</dc:date>
  <dc:creator>Matt.Rixx</dc:creator>
  <description>ah ben voilà, c'est plus clair :-D

là j'ai compris l'intérêt du truc !

Bon, si je voulais faire le chieur, je dirais que c'est faisable en php, mais je te l'accord, c'est pas géré de base, faut faire un truc qui le gère.

A propos d'ActiveRecord, comment se gère les jointures sur...</description>
  <content:encoded><![CDATA[<p>ah ben voilà, c'est plus clair :-D<br />
<br />
là j'ai compris l'intérêt du truc !<br />
<br />
Bon, si je voulais faire le chieur, je dirais que c'est faisable en php, mais je te l'accord, c'est pas géré de base, faut faire un truc qui le gère.<br />
<br />
A propos d'ActiveRecord, comment se gère les jointures sur plusieurs tables alors qu'une table est censé être représenté par un objet ?</p>]]></content:encoded>
</item>
<item rdf:about="http://thecaribbeanweblog.com/index.php/2007/01/22/124-rails-with_scope-find-do#c341">
  <title>Rails : with_scope :find =&gt; {} do - Christophe</title>
  <link>http://thecaribbeanweblog.com/index.php/2007/01/22/124-rails-with_scope-find-do#c341</link>
  <dc:date>2007-01-23T10:49:30+01:00</dc:date>
  <dc:creator>Christophe</dc:creator>
  <description>"en anglais, status finit par un s"

En fait, je voulais pas rentrer en conflit avec un reserved keyword de MySQL, mais effectivement en vérifiant, status n'y est pas ... (j'avais toujours cru que...) bon point pour toi. Mes tables n'en seront que moins moches :-)

"Y'a quoi de...</description>
  <content:encoded><![CDATA[<p>&quot;en anglais, status finit par un s&quot;<br />
<br />
En fait, je voulais pas rentrer en conflit avec un reserved keyword de MySQL, mais effectivement en vérifiant, status n'y est pas ... (j'avais toujours cru que...) bon point pour toi. Mes tables n'en seront que moins moches :-)</p>

<p>&quot;Y'a quoi de révolutionnaire dans le fait de créer x méthodes avec des noms explicites et de leur faire faire une requete spéciale ?&quot;<br />
<br />
Justement, les méthodes je ne les créées pas du tout, elles sont autogénérées par ActiveRecord. Donc j'ai pas à les écrires dans le model :-)<br />
Donc pour reprendre, si j'ai une table 'people' avec les champs 'island', 'type', 'genre' et 'sexy' (entre autres), je peux vraiment et directement faire "Person.find_all_by_island_and_type_and_genre_and_sexy", ou "Person.find_all_by_island_and_genre", ou tout ce que je veux avec ces champs.</p>
<p>&quot;Pas compris ce qu'il fallait retenir d'important.&quot;<br />
<br />
1- Le with_scope qui permet de *fusionner* les conditions, order by et autres<br />
2- Les "Dynamic Finders" que je viens d'expliquer qui font que je n'ai aucune méthode spéciale à écrire, pour faire des recherches sur le champ X ET Y ET .... 
</p>]]></content:encoded>
</item>
<item rdf:about="http://thecaribbeanweblog.com/index.php/2007/01/22/124-rails-with_scope-find-do#c340">
  <title>Rails : with_scope :find =&gt; {} do - Matt.Rixx</title>
  <link>http://thecaribbeanweblog.com/index.php/2007/01/22/124-rails-with_scope-find-do#c340</link>
  <dc:date>2007-01-23T08:47:18+01:00</dc:date>
  <dc:creator>Matt.Rixx</dc:creator>
  <description>Y'a quoi de révolutionnaire dans le fait de créer x méthodes avec des noms explicites et de leur faire faire une requete spéciale ?

Pas compris ce qu'il fallait retenir d'important....</description>
  <content:encoded><![CDATA[<p>Y'a quoi de révolutionnaire dans le fait de créer x méthodes avec des noms explicites et de leur faire faire une requete spéciale ?<br />
<br />
Pas compris ce qu'il fallait retenir d'important.</p>]]></content:encoded>
</item>
<item rdf:about="http://thecaribbeanweblog.com/index.php/2007/01/22/124-rails-with_scope-find-do#c339">
  <title>Rails : with_scope :find =&gt; {} do - geoffrey</title>
  <link>http://thecaribbeanweblog.com/index.php/2007/01/22/124-rails-with_scope-find-do#c339</link>
  <dc:date>2007-01-23T08:23:59+01:00</dc:date>
  <dc:creator>geoffrey</dc:creator>
  <description>en anglais, status finit par un s...</description>
  <content:encoded><![CDATA[<p>en anglais, status finit par un s</p>]]></content:encoded>
</item>

</rdf:RDF>
