I wanted my new project with rails 4. So, i started with rails with following 

tasks in mind.

1. responsive using bootstrap/foundation 

2. user authentication.
3. debugging

To make this task achievable there are following gem in rails.

1.devise/omniauth - for othentication
2.bootstrap-sass - for bootstrap 
3.rails_layout - for layout generation

Here is the process include these in your Gemfile.

gem 'rails_layout' , group: :development,

1.1 for the devise follow the following points here.

2.2 Now we have added the bootstrap in our project now, we need to generate the layout using bootstrap or foundation or Zurb.
follow the commands.

The “layout:install” Command
The command will rename application.css to application.css.scss.
It will add:
  • framework_and_overrides.css.scss

3. For Debugging]

group :development do 

  gem 'better_errors'
  gem 'binding_of_caller'
  gem 'pry_rails'
  gem 'meta_request'


4.  list of helpful gems 

  1. paperclip
  2. rmagic
  3. aws-sdk
  4. annotate
  5. roo #for csv, EXLE files
  6. pdfkit #for the pdf creation 
  7. suspot # for full text search
  8. jazz_hands # For perfect de-bugging 
  9. nakogiri #for pagination 
  10. sunspot
  11. quite_assets
For more visit this link links to gems blog

For  the file upload on the S3 bucket.

Some rails TIPS man.

1. include?
This is used to check for the word in the string.
"Hello".include? "l" => true

2. repond_to ?
This will be true if the var. will have the function to work with.

3. "hello".methods

4. "Hello".gsub!(/l/,"x");

5. in Rails to avoid SQL Injection 
 @tasks = Task.find(:all, :conditions => ["name LIKE ?", "%#{params[:query]}%"])

6. For the enum in the models to work.

7. Keywords for the ruby
  • break
  • next
  • redo
  • retry
  • is_a? /kind_of?
  • instance_of?
  • kind_of?
  • defined?
  • to_s
  • to_sym / to_intern --to_s
  • upto -- downto  88.upto(90){ }
  • collect / collect!

As Chris said, you'll want to use a third party service like S3 and if you do end up using Paperclip then you'll eventually have something like this example in your model.
has_attached_file :photo,
:styles => { :thumb=> "100x100", :small => "300x300" },
:storage => :s3,
:s3_credentials => "#{Rails.root.to_s}/config/s3.yml",
:path => "/:id/:style/:filename"
And in your config directory you'll have an s3.yml credentials file that would look like:
: blahblah
: sfoi40j8elkfv08hwo
: DJyWuRtsfoi40j8elkfv08hwos0m8qt

: blahblah
: sfoi40j8elkfv08hwo
: DJyWusfoi40j8elkfv08hwos0m8


8. For the the nested resources the views.

9. Eager loading for the rails if this is needed.