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é...