Ruby on Rails Sunday, January 29, 2012

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 <lists@ruby-forum.com> wrote:
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:
<code>
class AttachedImage < ActiveRecord::Base
 belongs_to :attachable, :polymorphic => true

 has_attached_file :image
end
</code>

migration:
<code>
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
</code>

And the controller:
<code>
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
</code>

the view part:
<code>
<div id="upload-image-dialog">
   <%= form_tag(@attached_image, :method => "POST", :remote => true,
:html => { :multipart => true }) do %>
     <%= file_field_tag :image %>
     <%= submit_tag("submit") %>
   <% end %>
   <h1 style="display:none">Successfully Uploaded.</h1>
</div>
</code>

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:in `create'

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!

--
Posted via http://www.ruby-forum.com/.

--
You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group.
To post to this group, send email to rubyonrails-talk@googlegroups.com.
To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.




--
Thanks,
Prince

--
You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group.
To post to this group, send email to rubyonrails-talk@googlegroups.com.
To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.

No comments:

Post a Comment