7

I'm using Ruby 1.9 and Rails 2.3.4 with Paperclip gem to save attachments. and I followed tutorial by adding the proper migration, adding (has_attached_file :video) to the model, making the form (multipart) and adding <%= f.file_field :video %> to it...

When I try to upload a file I look in the log and I see:

[paperclip] Saving attachments.

But the file isn't really uploaded and the extra fields that have been added by paperclip are all NULLs!!

The fact that it's not throwing any error making me confused where to start looking for possible issues. I'm using MAC OSX Leopard, is it possible that it's a permissions thing? if so how can I give "sudo" permission to my app?

Any ideas what the problem is or how I can display better logging to know where to look for problems.

Thanks,

Tam

The log:

  SQL (0.2ms)   SET NAMES 'utf8'
  SQL (0.2ms)   SET SQL_AUTO_IS_NULL=0


Processing PostsController#create (for 127.0.0.1 at 2009-09-26 17:08:26) [POST]
  Parameters: {"authenticity_token"=>"ZhEzTVQScgZxV9KY0Eo+sG5sHwn1kHgykvy11ovvfSU=", "post"=>{"title"=>"asd fasdf ", "description"=>"asdf as fasd f", "video"=>#<File:/var/folders/RH/RHekFGKME9uDJbX4d4DG3E+++TI/-Tmp-/RackMultipart20090926-27216-m28uwg-0>, "video_link"=>"", "is_notify_when_comment"=>"0"}}
I'm in load_user
  User Columns (3.7ms)   SHOW FIELDS FROM `users`
  User Load (0.6ms)   SELECT * FROM `users` WHERE (`users`.`id` = 3) LIMIT 1
  Post Columns (3.0ms)   SHOW FIELDS FROM `posts`
WARNING: Can't mass-assign these protected attributes: video
  SQL (0.2ms)   BEGIN
  Post Create (0.4ms)   INSERT INTO `posts` (`title`, `description`, `video_link`, `is_notify_when_comment`, `view_count`, `is_ours`, `votes_up_count`, `votes_down_count`, `flag_count`, `is_deleted`, `user_id`, `created_at`, `updated_at`, `video_file_name`, `video_content_type`, `video_file_size`, `video_updated_at`) VALUES('asd fasdf ', 'asdf as fasd f', '', 0, 0, 0, 0, 0, 0, 0, 3, '2009-09-27 00:08:27', '2009-09-27 00:08:27', NULL, NULL, NULL, NULL)
[paperclip] Saving attachments.
  SQL (24.0ms)   COMMIT
Redirected to http://localhost:3000/posts/10
Completed in 477ms (DB: 32) | 302 Found [http://localhost/posts]
Tam
  • 11,872
  • 19
  • 69
  • 119

1 Answers1

14

I figured out what was the problem

I had to add :video into my attr_accessible in the model so it wasn't assigning that video and wasn't throwing an error

Tam
  • 11,872
  • 19
  • 69
  • 119
  • 1
    Thanks for this. I've spent way too many hours trying to figure this out. I also tested this with __attr_accessor__ and that did __not__ work, has to be __attr_accessible__ – Misha M Mar 24 '11 at 23:40
  • If I could give you a kiss I would! Such a silly little thing to miss, but it made a huge difference. Annoying that there is no warning as you would get for other attributes... – James P McGrath Nov 28 '11 at 10:42
  • 3
    I have the exact same issue, but adding attr_accessible does not solve it. Still inserting 'nil' for the 4 attributes. Any idea? – Yohann T. May 12 '12 at 19:05