Forum: Rails France Sousis avec has_and_belongs_to_many

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
0ba2b441c367fc6ec5dc655033cb79c5?d=identicon&s=25 Alexandre Cartier (Guest)
on 2009-02-25 16:05
(Received via mailing list)
Bonjour j'ai un petit sousis avec has_and_belongs_to_many

voilà mes 2 déclarations

class Policier < ActiveRecord::Base
>   has_and_belongs_to_many :brevets, :join_table => "policiers_brevets"
>   has_many :armes
>
>   validates_presence_of :nom, :message => "ne peut être vide"
>   validates_presence_of :prenom, :message => "ne peut être vide"
>   validates_presence_of :matricule, :message => "ne peut être vide"
>   validates_uniqueness_of :matricule,  :message => "doit être unique"
> end


class Brevet < ActiveRecord::Base
>   has_and_belongs_to_many :policiers, :join_table => "policiers_brevets"
> end
>

Voici ma vue de mon formulaire:

<% form_for(@policier) do |f| %>
> button_label %></td>
>     </tr>
> </table>
> <% end %>


Question 1 : Cela ne me rempli pas ma DB pourquoi?
Question 2 : Pour afficher le résultat il faut faire une boucle mais sur
quoi exactement?

D'avance merci
Alexandre
047a4fc673336a70a6b58338bc6d677d?d=identicon&s=25 Michel Belleville (Guest)
on 2009-02-25 16:34
(Received via mailing list)
Ce n'est pas le coeur de ton bug, mais si tu veux suivre les conventions
la
première table alphabétiquement devrait apparaître en premier dans la
nom de
la liaison, ça t'économiserait le :join_table dans tes habtm.

Sinon, si tu veux remplir une association habtm, ce n'est pas comme un
belong_to, ton modèle Policier ne porte pas l'association, il n'y a donc
pas
de champs :brevet_id :

<%= collection_select f , :brevet_id, @brevets, :id, :nom , {},
:multiple =>
true %>

Par contre, il existe un raccourcis pour lier par leurs ids les brevets,
:
brevet_ids ; donc il faut quelque chose du genre :
<%= collection_select f , :brevet_ids, @brevets, :id, :nom , {},
:multiple
=> true %>

Quand à afficher les résultats, tout dépend du contexte. Dis-en plus...

Michel Belleville


2009/2/25 Alexandre Cartier <fiyorden@gmail.com>
0ba2b441c367fc6ec5dc655033cb79c5?d=identicon&s=25 Alexandre Cartier (Guest)
on 2009-02-26 12:06
(Received via mailing list)
Merci avec une petite modification cela fonctionne a merveille, merci
pour
l'aide.

Pour Memo : <%= f.collection_select :brevet_ids, @brevets, :id, :nom ,
{},
:multiple => true %>

Le 25 février 2009 16:34, Michel Belleville
<michel.belleville@gmail.com> a
écrit :
A99870c1391c39da2089649745965bda?d=identicon&s=25 Jean-François Trân (Guest)
on 2009-02-28 02:00
(Received via mailing list)
Le 25 février 2009 16:02, Alexandre a écrit :
> Bonjour j'ai un petit sousis avec has_and_belongs_to_many
>
> voilà mes 2 déclarations
>
>> class Policier < ActiveRecord::Base
>>   has_and_belongs_to_many :brevets, :join_table => "policiers_brevets"
>>   has_many :armes

Elle a l'air passionnante, ton appli.

   -- Jean-François.

--
http://twitter.com/underflow_
This topic is locked and can not be replied to.