I am new to Rails and have been diving into many tutorials and online material. I am now beginning to plan/develop my own app. From all the reading I have done I am yet to come across an industry standard way of handling user profile pictures. I have bullet point what I intend to do (below) and would like some suggestions whether this is a good approach and on the right track or whether there is a much better/secure/standard way:
add a 'ProfilePhotoPath' column to my User Model/Table of type String, which will hold the location path/name of the photo
on sign-up form implement an image upload functionality to upload profile pic and store at specified location (reference in step 1 above)
note: I have come across the 'paperclip gem' and 'imagemagick', is this a better easier approach to what I want to achieve?
There are two better ways to upload profile image using Carrierwave or Paperclip.
If you want to use Carrierwave then refer this tutorial Image Upload using Carrierwave
And if you want to go for Paperclip, then refer this links Upload image using Paperclip video tutorial
Another link with steps is Upload profile image using Paperclip
Most people use Paperclip or a more robust solution would be Carrierwave.
Both are really good. I would tell you to learn Paperclip first.
It's fairly easy if you're just starting out.
Edit: checkout this link. Click the green 'run' button to see the app.
http://runnable.com/UnnhcBiQoFhwAAEb/how-to-upload-files-using-paperclip-for-ruby-on-rails
Related
I would honestly appreciate feedback, or an on edit, on what I should change about this post instead of all the down votes. I'm new to web development, and I had an honest question. If this isn't the place to ask it, please point me in the right direction.
I have a Ruby on Rails application where part of the core purpose involves displaying images that I pull from the Facebook Graph API. And I want to be able to display the images in a uniform size.
What I'm hoping I can do: I'm trying to just store the id of the image from Facebook to my database and resize the image after I pull it from Facebook's servers. I was thinking that this would save on storage costs. I've been looking at the RMagick gem that binds Ruby to the ImageMagick library, specifically their resize method.
Another option I've considered: I'm thinking about adding a cropping feature. To do this though, I think I would need to set up a storage service, like Amazon's S3. Then I would pull from the image storage service where the cropped images are stored instead of pulling from Facebook and resizing client-side.
Are there any options I might not be considering? And how accurate are my examples to approaches that could be taken.
If you have a huge number of images to show, then go with "resize - store - show". If less then go with an on-the-fly process.
Here are a few well-known gems that help you process images, but choose according to your requirement:
CarrierWave
Paperclip
Dragonfly
refile (new gem)
See "Compare CarrierWave ,Paperclip and Dragonfly in rails" and "Refile: Fixing Ruby File Uploads".
Not sure the title explains what i'm trying to do or not. Basically, i am building a wiki-like ruby on rails application. I have model called Page that needs a WYSIWYG for the content data. My application has many users that will be grouped by an Organization so each user will belong_to an Organization. My only requirements are 1) it is a WYSIWYG that allows S3 image uploading and 2) When you click "upload image" you should be able to see all the images that have been uploaded by users that belong to the same organization as you. I will need to store the images in a bucket in S3 like <bucket_name>/<organization_id>/rest_of_image_path.... Hopefully this all makes sense.
Does anyone know of a wysiwyg editor that will do this? If someone could point me in the right direction i'd be greatly appreciative! Also, if this is not the appropriate place for this question to be please let me know and i'll move it. Thanks!
I'm looking for the best way for loading user avatar for rails app.
There is some of important cases:
load images from web or local
allow user crop image at preview window (with Jcrop for example)
save several sizes of avatar 64x64, 128x128, etc (Carrierwave or Paperclip no mater)
easy styling and customizing
I found
https://github.com/ging/avatars_for_rails but interesting in any alternatives or good samples.
Please checkout http://odysseyonrails.com/articles/10. It has a demo code using paperclip and jcrop that fits all your needs.
Paperclip (most popular)
Dragonfly
Check out this tutorial here (skip to 12:50 to see if it's even what you're after). It uses JCrop on the client side of a Rails application for the user to crop their avatar and then save it on the server side.
Hope this helps!
I am building an app where user can upload pictures. For now only one picture at a time will do. I have searched around the Web and here at Stack Overflow, but don't really seem to find what I am looking for or at least I don't know what I am looking for if it exists here at the site.
I have tried implementing paperclip and allow users to upload pictures through that and not deleting the old picture when uploading a new one. But I don't really know where to go from here to display all the pictures that a user has uploaded. How do I do this the best way? Should I continue using paperclip or is there an even more suitable gem for my needs?
I prefer carrierwave, over Paperclip, because it has more options and easy to setup. However without knowing what is your ultimate goal for your photo app, it's a little hard to tell what to do next.
If you have a roadmap or feature list, that would be helpful for us to help you with your next move.
But, if it is a simple photo app, might as well try to build it on top of an existing CMS like Refinery; you could easily build a plugin to upload images with Refinery.
I want to be able to provide my website users with the ability to upload a profile picture. What are my options? What is the best way to do this? I would need to be able to limit the image size, crop / resize the image so that I can display thumbnails of the image. The website is written using Ruby on Rails
In alternate plugin to manage your upload file is carrierwave
The PaperClip plugin is pretty much the new hotness (standard):
http://github.com/thoughtbot/paperclip
It supports different image processors but we use ImageScience. RMagick leaks memory
I agree with the others recommendation of Paperclip for handling any kind of upload.
However for profile pictures in particular, if you are storing your user's email addresses you might like to consider using Gravatar, as StackOverflow does, to effectively "outsource" this functionality and let your users maintain consistent avatars among all the sites they use.