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 :

attachment_fu et polymorphisme. Deux modèles dans un formulaire.


Sujet :

Ruby on Rails

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 110
    Par défaut attachment_fu et polymorphisme. Deux modèles dans un formulaire.
    Je débute avec attachment_fu. J'ai déjà réussi à l'utiliser pour associer une photo à un modèle à partir d'un formulaire séparé. Je veux maintenant avoir une relation 'polymorphique' (pouvoir associer une image à plusieurs controller en ayant un seul modèle image)

    Je prend l'exemple du modèle 'association' ou je veux mettre un champ 'image' dans le formulaire de création.

    Modèle:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    class Association < ActiveRecord::Base
      has_one :image, :as => :attachable, :dependent => :destroy
    end
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    class Image < ActiveRecord::Base
     
      belongs_to :attachable, :polymorphic => true
     
      has_attachment :content_type => :image, 
                     :storage => :file_system, 
                     :max_size => 500.kilobytes,
                     :resize_to => '320x200',
                     :thumbnails => { :thumb => [50,50] },
                     :processor => :Rmagick
     
      validates_as_attachment
     
    end

    Controlleur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    def new
        @association = Association.new
      end
     
      def create
        @association = Association.new(params[:association])
        image = @association.create_image(params[:image])
        if @association.save and image.save
          flash[:notice] = 'Association was successfully created.'
          redirect_to :action => 'list'
        else
          render :action => 'new'
        end
      end

    Vue:
    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
    <h1>Création d'une nouvelle association</h1>
     
    <% form_tag :action => 'create' do %>
     
            <%= error_messages_for :association %>
            <%= error_messages_for :image %>
     
    	<p><label for="association_nom">Nom</label><br/>
    	<%= text_field 'association', 'nom'  %></p>
     
            <p><label for="association_description">Contenu de la page:</label><br/>
            <%= text_area 'association', 'description'  %></p>
     
            <%= file_field 'image', :uploaded_data %>
     
    	<%= submit_tag "Create" %>
     
    <% end %>
     
    <%= link_to 'Back', :action => 'list' %>
    Mais j'obtiens l'erreur:
    undefined method `content_type' for "2083186.jpg":String

    Je ne comprend pas à quoi cette erreur est lié...

  2. #2
    Membre émérite

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    657
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 657
    Par défaut
    Salut,

    Pour uploader des fichiers, il faut que ton formulaire soit en multipart.

    cf FAQ Ruby on Rails : Comment télécharger un fichier sur le serveur ?

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 110
    Par défaut
    Encore une fois merci beaucoup,

    Beaucoup de temps perdu à repenser la logique alors qu'il s'agissait d'un détail que je n'avais pas vu dans les tutos...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Form] deux actions dans un formulaire ?
    Par FraK dans le forum Balisage (X)HTML et validation W3C
    Réponses: 21
    Dernier message: 16/07/2007, 15h11
  2. Deux actions dans un formulaire ?
    Par Timalounet dans le forum Langage
    Réponses: 1
    Dernier message: 03/04/2007, 18h16
  3. [Formulaire] Mettre deux submit dans un formulaire
    Par sagitarium dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 02/11/2006, 20h24
  4. deux boutons dans un formulaire
    Par vanou dans le forum Balisage (X)HTML et validation W3C
    Réponses: 7
    Dernier message: 20/06/2006, 08h57
  5. deux boutons dans un formulaire
    Par vanou dans le forum ASP
    Réponses: 5
    Dernier message: 20/06/2006, 08h55

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