Attachment_fu

Hola

Estoy intentando usar attachment_fu para subir un archivo. He mirado
este manual que me comentasteis aquí
(http://clarkware.com/cgi/blosxom/2007/02/24), pero no consigo hacer
nada…

Tengo un controller que contiene:
class MugshotsController < ApplicationController
def new
@mugshot = Mugshot.new
end
def create
@mugshot = Mugshot.new(params[:mugshot])
if @mugshot.save
flash[:notice] = ‘Mugshot was successfully created.’
redirect_to mugshot_url(@mugshot)
#redirect_to :action => ‘list’
else
render :action => :new
end
end
end

Modelo:
class Mugshot < ActiveRecord::Base
has_attachment :content_type => :image,
:storage => :file_system,
:max_size => 500.kilobytes,
:resize_to => ‘320x200>’,
:thumbnails => { :thumb => ‘100x100>’ }

validates_as_attachment
end

Vista: new.rhtml

New mugshot

<%= error_messages_for :mugshot %>

<% form_for(:mugshot, :url => ‘d:’,
:html => { :multipart => true }) do |f| -%>

Upload A Mugshot: <%= f.file_field :uploaded_data %>

<%= submit_tag 'Create' %>

<% end -%>

El problema es que cuando pulso el botón Create no hace nada…
¿Alguien sabría porqué podría ser?

Muchas gracias

Estoy buscando en google pero no veo nada…

He cambiado en tempfile.rb de ruby la línea 55
Tenía esta línea
@tmpfile = File.open(tmpname, File::RDWR|File::CREAT|File::EXCL,
0600)

Y he puesto esta.
@tmpfile = File.open(tmpname,
File::RDWR|File::CREAT|File::EXCL|File::BINARY, 0600)

He leído por algún sitio que había que hacerlo.

Por favor echarme una mano que tengo que presentar el lunes una parte y
no voy a llegar… :(((((

Muchas gracias

Perdón lo que tengo en la vista es esto que lo he copiado mal…

<%= error_messages_for :whatever %>

<% form_for(:mugshot, :url => { :action => “create” },
:html => { :multipart => true }) do |f| -%>

Upload A Mugshot: <%= f.file_field :uploaded_data %>

<%= submit_tag 'Create' %>

<% end -%>

Y el error me lo da al intentar hacer el save en el create del
controlador…

Gracias una vez más.

No entiendo que es esto form_for(:mugshot, :url => ‘d:’
Ahi tenes que poner :url => {:action => ‘create’}

saludos,
Juan P…

Juan P. wrote:

No entiendo que es esto form_for(:mugshot, :url => ‘d:’
Ahi tenes que poner :url => {:action => ‘create’}

saludos,
Juan P…

Si si. Me he equivocado al copiar y pegar. Lo siento.

Tengo puesto :url => {:action => ‘create’}

<%= error_messages_for :whatever %>

<% form_for(:mugshot, :url => { :action => “create” },
:html => { :multipart => true }) do |f| -%>

Upload A Mugshot: <%= f.file_field :uploaded_data %>

<%= submit_tag 'Create' %>

<% end -%>

Pero cuando intenta hacer el save en el create del controller me da
error.

He visto que los parámetros son raros:
Parameters: {“commit”=>“Create”, “action”=>“create”,
“controller”=>“mugshots”,
“mugshot”=>{“uploaded_data”=>#<File:C:/DOCUME~1/ADMINI~1/CONFIG~1/Temp/CGI3272-1>}

Y que el nombre del fichero no es el correcto ya que lo que selecciono
es
D:\Imagen 009.jpg y me manda en los parámetros
“uploaded_data”=>#<File:C:/DOCUME~1/ADMINI~1/CONFIG~1/Temp/CGI3272-1

¿Esto es normal?

Gracias por todo

Conseguí solucionarlo!!!

El problema estaba en path_prefix del modelo: Ha quedado así.

class Mugshot < ActiveRecord::Base

has_attachment :content_type => :image,
:storage => :file_system,
:max_size => 1.megabyte,
:resize_to => ‘320x200>’,
:path_prefix => “./public/images”,
:thumbnails => { :thumb => ‘100x100>’ },
:processor => :Rmagick

validates_as_attachment

end

Muchas gracias.

Que muestra el log?