How to use Paperclip alone with a separated attachment model

I have a scenario that my user need to upload a image first and then
assign to another model, so I used a generic model, to upload the file
first. But I always get a exception of
ActiveRecord::UnknownAttributeError (unknown attribute: utf8). because
rails automatically adds a utf-8 field for the form submit.

model:

class AttachedImage < ActiveRecord::Base
belongs_to :attachable, :polymorphic => true

has_attached_file :image
end

migration:

class CreateAttachedImages < ActiveRecord::Migration
def change
create_table :attached_images do |t|

  t.string      :image_file_name
  t.string      :image_content_type
  t.integer     :image_file_size
  t.datetime    :image_updated_at
  t.references  :attachable,  :polymorphic => true

  t.timestamps
end

end
end

And the controller:

class AttachedImagesController < ApplicationController
def create

@attched_image = AttachedImage.new(params)

respond_to do |format|
  if @attched_image.save
    format.js
  else
    format.js
  end
end

end
end

the view part:

<%= form_tag(@attached_image, :method => "POST", :remote => true, :html => { :multipart => true }) do %> <%= file_field_tag :image %> <%= submit_tag("submit") %> <% end %>

Successfully Uploaded.

it’s quite straight forward, but every time I submit this form, I will
get an exception of the utf8 field added automatically by rails.

ActiveRecord::UnknownAttributeError (unknown attribute: utf8):
app/controllers/attached_images_controller.rb:5:in new' app/controllers/attached_images_controller.rb:5:increate’

I could not understand that, this shall not be a problem right? We are
writing @model = Model.new(params) everyday, hope someone could help me
out and explain what’s going on under the hood, thanks!

Problem is here, in this line of code:

@attched_image = AttachedImage.new(params)

It should be:

@attched_image = AttachedImage.new(params[:attached_image])

On Mon, Jan 30, 2012 at 12:21 PM, Bo Zhao [email protected] wrote:

 t.string      :image_file_name

 else

<%= form_tag(@attached_image, :method => “POST”, :remote => true,


You received this message because you are subscribed to the Google G.
“Ruby on Rails: Talk” group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/rubyonrails-talk?hl=en.


Thanks,
Prince

On Monday 30 January 2012 12:21 PM, Bo Zhao wrote:

   t.string      :image_file_name

   else
 <%= form_tag(@attached_image, :method =>  "POST", :remote =>  true,

ActiveRecord::UnknownAttributeError (unknown attribute: utf8):
app/controllers/attached_images_controller.rb:5:in new' app/controllers/attached_images_controller.rb:5:increate’

I could not understand that, this shall not be a problem right? We are
writing @model = Model.new(params) everyday, hope someone could help me
out and explain what’s going on under the hood, thanks!

change in the controller

@attched_image = AttachedImage.new(params)

to

@attched_image = AttachedImage.new(params[:attached_image])

if above not working because of form_tag usage

then you have to use custom new like

@attched_image = AttachedImage.new(:image=>params[:image])

this should work.

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs