IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Ruby on Rails Discussion :

habtm records problems


Sujet :

Ruby on Rails

  1. #21
    Membre averti Avatar de Javix
    Inscrit en
    Juin 2007
    Messages
    531
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 531
    Points : 353
    Points
    353
    Par défaut
    Citation Envoyé par kinggordo Voir le message
    Donc lorsque j'enregistre les personnages c'est par rapport au film et non aux fonctions.

    Comment puis-je piloter la table fonction_personnages depuis le controller film ?
    Tout vient de tes modèles que tu as définis toi-même comme ça
    model film:

    has_many :film_fonctions, :dependent => :destroy
    has_many :fonctions, :through => :film_fonctions

    has_many :film_personnages, :dependent => :destroy
    has_many :personnages, :through => :film_personnages

    model fonction:

    has_many :fonction_personnages, :dependent => :destroy
    has_many :personnages, :through => :fonction_personnages
    Donc soit tu boucle sur chaque fonction que tu récupère via le hash 'params' et tu crées tes personnages pour cette chaque fonction. Soit tu repenses tes modèles et relations. Mais déjà au début ton concept ne me plaisait pas trop, imagine comment tu vas faire les validations... J'ai l'impression que tu tourne en rond-là...Sinon, regarde un peu Rails screen casts, peut être tu y trouveras ce que tu cherches.

  2. #22
    Membre actif Avatar de rivsc
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2008
    Messages
    213
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2008
    Messages : 213
    Points : 275
    Points
    275
    Par défaut
    Bonjour,

    Désolé de ne pas t'aider, mais pourrai-tu utiliser la balise "code" qui garde l'indentation du code, et sépare le code des commentaires. C'est plus facile à lire pour tout le monde en particulier pour Javix.

    Merci beaucoup !

  3. #23
    Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 15
    Points : 4
    Points
    4
    Par défaut
    Javix

    j'ai réussi à mettre au point l'enregistrement dans la bdd

    donc: 3 models film/fonction/peronnage

    plus une table de jointure: joint.rb
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    belongs_to :film
    belongs_to :fonction
    belongs_to :personnage
    Dans ma vue (_form):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
     
    <% Personnage.find(:all,:order=>"titre").each do |perso| %>
     
    	<span>
    	<%= link_to_function(perso.titre)  do |page|
    		page.visual_effect :toggle_blind, "#{perso.id}"
    		end
    	%>
    	</span>
     
     
    	<div id="<%= perso.id %>" style="display:none;" >
    	<% Fonction.find(:all,:order=>"titre").each do |fonction| %>
    		<br />
    		<% f.fields_for :joints, Joint.new(:personnage_id => perso.id) do |ff| %>
    			<%= ff.hidden_field :personnage_id %>
    			<%= ff.check_box :fonction_id, {}, fonction.id %>
    			<span><%= fonction.titre %></span>
     
     
    		<% end %>
    		<br />
    	<% end %>
    	<br />
    	</div>
    <% end %>
    ---

    de cette façon tout s'enregistre correctement.

    Mon problème maintenant est de rapatrier en mode edit/update les enregistrements et de les mettre à jour.

    une idée ?

  4. #24
    Membre expert
    Avatar de Bestiol
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    1 515
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 515
    Points : 3 894
    Points
    3 894
    Par défaut
    Je passe un peu rapidement, mais je pense que ces deux articles de Ryan Bates (auteur de Railscasts) peuvent t'aider :
    How do I make a form that handles multiple models?
    Editing Multiple Models in One Form

    Qui plus est, par rapport au code de ta vue, je pense que tu devrais le revoir un peu et placer les choses comme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Personnage.find(:all,:order=>"titre")
    dans ton contrôleur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    @personnages = Personnage.find(:all,:order=>"titre")
    La vue n'a théoriquement pas à connaître la logique d'obtention des données, elle reçoit juste une collection qu'elle sait parcourir.
    Tu peux passer cette collection @personnages à ton partial avec l'option :locals :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    render :partial => "form", :locals => { :personnages => @personnages }
    Elle sera alors accessible dans _form par la variable locale "personnages".

    Bon courage !
    Olivier
    Mea est trop forte, elle flotte : mea coule pas !

    Basically this boot sector (Win95) code is 32 bit extension for a 16 bit patch to an 8 bit boot sector originally coded for a 4 bit microprocessor, written by a 2 bit company, that can't stand 1 bit of competition.

    olance.developpez.com
    Servez-vous, profitez, abusez de la FAQ Delphi !!

  5. #25
    Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 15
    Points : 4
    Points
    4
    Par défaut
    ok, merci Bestiol !

Discussions similaires

  1. probleme FTP message record have been truncated
    Par plamaison dans le forum AS/400
    Réponses: 5
    Dernier message: 19/08/2010, 14h40
  2. [Tuto] Windows 7 : Problem Steps Recorder
    Par noNak dans le forum Windows 7
    Réponses: 0
    Dernier message: 04/11/2009, 18h05
  3. probleme structure Record
    Par vitch8 dans le forum Langage
    Réponses: 7
    Dernier message: 26/03/2009, 12h06
  4. probleme appel package retourne record
    Par cyberyan dans le forum PL/SQL
    Réponses: 1
    Dernier message: 03/03/2009, 14h01
  5. probleme avec : record "new" is not assigned yet D
    Par chtieu dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 31/03/2005, 20h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo