Ruby on Rails Interview Questions

Hi Guys, Hope you all are fine, Well I think that I should Post something different in my blog, so that It will help you to get some more knowledge πŸ™‚ , So I came with Interview Questions, Hope this will help you a lot, I will update it regularly, If I found something Interesting. Well If you are experienced, I hope this should help you. All the Questions are dynamically Typed.

Q1. What is request.xhr?
Sol: A request.xhr tells the controller that the new Ajax request has come, It always return TRUE or FALSE

Q2. What is the Difference between Static and Dynamic Scaffolding?
Sol: The Syntax of Static Scaffold is like this:
ruby script/generate scaffold User Comment
Where Comment is the model and User is your controller, So all n all static scaffold takes 2 parameter i.e your controller name and model name, whereas in dynamic scaffolding you have to define controller and model one by one.

Q3. What is the Difference between Symbol and String?

Q4. What is Session and Cookies?
Sol: Session: are used to store user information on the server side.
cookies: are used to store information on the browser side or we can say client side
Session : say session[:user] = “puneet” it remains when the browser is not closed

Q5. Why Ruby on Rails?
Sol: There are lot of advantages of using ruby
1. DRY Principal
2. Convention over Configuration
3. Gems and Plugins
4. Scaffolding
5. Pure OOP Concept

Q6. What is MVC? and how it Works?
Sol: MVC tends for Model-View-Controller, used by many languages like PHP, Perl, Python etc. The flow goes like this: Request first comes to the controller, controller finds and appropriate view, your view interacts with model, model interacts with your database, for Example your url is something like this:
http://localhost:3000/users/new
here users is your controller and new is your method, there must be a file in your views/users folder named new.html.erb, so once the submit button is pressed, User model or whatever defined in the rhtml form_for syntax, will be called and values will be stored into the database.

Q7. What things we can define in the model?
Sol: There are lot of things you can define in models few are:
1. Validations (like validates_presence_of, numeracility_of, format_of etc.)
2. Relationships(like has_one, has_many, HABTM etc.)
3. Callbacks(like before_save, after_save, before_create etc.)
4. Suppose you installed a plugin say validation_group, So you can also define validation_group settings in your model
5. ROR Queries in Sql

Q8. What is ORM in Rails?
Sol: ORM tends for Object-Relationship-Model, it means that your Classes are mapped to table in the database, and Objects are directly mapped to the rows in the table.

Q9. How many Types of Relationships does a Model has?
Sol: * (1) has_one
* (2) belongs_to
* (3) has_many
* (4) has_many :through

Q10. What is the difference between has_and_belongs_to_many and has_many :through ?

Q11.Β  What is the difference between rails version 3 with the older ones?

Q12. Difference between render and redirect?
Sol: render example: render :action, render :partial etc.
redirect example: redirect_to :controller => ‘users’, :action => ‘new’

Q13. How to use sql db or mysql db. without defining it in the database.yml
Sol. http://stuff.lilleaas.net/active_record_anywhere

Q14. What are helpers and how to use helpers in ROR?
Sol. Helpers (β€œview helpers”) are modules that provide methods which are automatically usable in your view. They provide shortcuts to commonly used display code and a way for you to keep the programming out of your views. The purpose of a helper is to simplify the view. It’s best if the view file (RHTML/RXML) is short and sweet, so you can see the structure of the output.

Q15. What is Active Record?
Sol. Active Record are like Object Relational Mapping(ORM), where classes are mapped to table and objects are mapped to colums in the table

Q16. Ruby Supports Single Inheritence/Multiple Inheritence or Both?
Sol. Ruby Supports only Single Inheritnece

Q17. How many types of callbacks available in ROR?
Sol. * (-) save
* (-) valid
* (1) before_validation
* (2) before_validation_on_create
* (-) validate
* (-) validate_on_create
* (3) after_validation
* (4) after_validation_on_create
* (5) before_save
* (6) before_create
* (-) create
* (7) after_create
* (8) after_save

Q18. Suppose in one of my method I am updating the attributes of table, in my model I have defined after_create do X, and after_save do Y. Which method will be called?

Q19. How to use two database into a Single Application?
Sol. http://magicmodels.rubyforge.org/magic_multi_connections/, According to this link : ActiveRecord models are allowed one connection to a database at a time, per class. Ruby on Rails sets up the default connection based on your database.yml configuration to automatically select development, test or production.
But, what if you want to access two or more databases – have 2+ connections open – at the same time. ActiveRecord requires that you subclass ActiveRecord::Base.
That prevents you doing migrations from one database to another. It prevents you using one set of model classes on two or more databases with the same schema.
Magic Multi-Connections allows you to write your models once, and use them for multiple Rails databases at the same time. How? Using magical namespacing.

screenshot

To do this :
[A] sudo gem install magic_multi_connections
[B] require ‘magic_multi_connections’
Add the following to the bottom of your environment.rb file
You can also find examples on this link : http://magicmodels.rubyforge.org/magic_multi_connections/

Updated Set of Questions for Rails 3

Q20. Tell us the changes between the Rails version 2 and 3?
Sol. *Β  (1) Introduction of bundler (New way to manage your gem dependencies)
* (2) Gemfile and Gemfile.lock (Where all your gem dependencies lies, instead of environment.rb)
* (3) A new .rb file in config/ folder, named as application.rb (Which has everything that previously environment.rb had)
* (4) Change in SQL Structure: Model.where(:activated => true)
* (5) All the mailer script will now be in app/mailers folder, earlier we kept inside app/models.
* (6) Rails3-UJS support. for links and forms to work as AJAX, instead of writing complex lines of code, we write :remote => true
* (7) HTML 5 support.
* (8) Changes in the model based validation syntax: validates :name, :presence => true
* (9) Ability to install windows/ruby/jruby/development/production specific gems to Gemfile.
group :production do
gem 'will_paginate'
end

Q21. What is bundler?
Sol: Bundler is a new concept introduced in Rails3, which helps to you manage your gems for the application. After specifying gems in your Gemfile, you need to do a bundle install. If the gem is available in the system, bundle will use that else it will pick up from the rubygems.org.

Q22. What is the Newest approach for find(:all) in Rails 3?
Sol: Model.where(:activated => true)

Q23. What is Gemfile and Gemfile.lock?

Ruby Interview Questions :

Q1. What is the Notation used for denoting class variables in Ruby?

Q2. What is the use of Destructive Method?

Q3. What is the use of load and require in Ruby?

Q4. What is the use of Global Variable in Ruby?

Q5. How does nil and false differ?

Q6. How is visibility of methods change in Ruby?

Q7. What is a Class Instance Variable

Q8. What are the rules and conventions to be followed in Ruby for naming a method?

Q9. What is the use of Super?

Q10. How is class method defined in Ruby?

Q11. What are the Operators available in Ruby?

Q12. What are the looping structure available in Ruby?

Q13. What is the scope of local variable?

Q14. What are the OOP supported by Ruby?

Q15. If Ruby over PHP, Why?

Q16. Garbage collection in Ruby?

Q17. Environment Variables in Ruby?

Q18. What are Float, Dig and Max?

Q19. What is Ruby Code blocks?

Q20. What kind of conditions ruby support?

Q21. Difference between puts and print

Some More Questions are here:
Q1. What is Agile methodology? What are their Processes?

Q2. Is there any technology apart from agile which we can use?

Q3. What are the servers supported by ruby on rails application?

Q4. What is new in Rails 3.0?

Q5. What is Meta-programming? How you are using it inside your rails application?

Q6. What is has_many?
Ans. It is a way of defining relationships among models. Correct, and Do you guys really know has_many is also an example of Meta-programming? Wondering, How?

Q7. What is TDD and BDD?
Hint: Test-Driven-Development and Behavior-Driven-Development

Q8. What is rspec, cucumber and Watir? And what it has to do with TDD and BDD?

More Questions and Answers of this will be published very soon πŸ™‚ So stay in touch.. I will keep you updating.. if you have some questions please reply…

Advertisements

51 thoughts on “Ruby on Rails Interview Questions

  1. Anuj Gupta

    Hey Puneet,
    Nice collection of Questions you have, but I am waiting for the answers of it. Hope you will publish it soon.

    Cheers..

  2. How many Types of Relationships does a Model has?

    1. Belongs to
    2. Has many / has one
    3. has and belongs to many (HABTM)

    A pictorial representation of the relationship has been provided here.

  3. Thanks Ramu for Appreciating my work, definitely it will help others. Still there are lot of questions which needs to be answered, I m searching and also getting responses from ror guys πŸ™‚

  4. Hi Puneet,

    Thanks for the questions. I am just started learning ROR from last 1 month. It is a
    nice reference for me. Good work keep going. Can i use scaffold to show data from two tables i.e two models and one controller ?

    Santosh

  5. hey Santosh Thanks a ton for appreciating my work. I will carry this on as I am receiving lot of good responses on this.

    About your problem, yes you can display data from n number of tables through one controller.

    you have to go like this:

    def display_data
    @comments = Comment.find(:all, :conditions => [“Some Condition”])
    @posts = Post.find(:all, :conditions => [“Some Conditions”])
    end

    Then you have to start a loop to retrieve each value individually.

    Hope this helps πŸ™‚

  6. You can also do eager loading, I am not very much familiar about this concept, but it will save lots of time, see how it works:

    def display_data
    generate_comment_post_lists
    end

    private
    def generate_comment_post_lists
    @comments = Comment.find(:all, :conditions => [“Some Condition”])
    @posts = Post.find(:all, :conditions => [“Some Conditions”])
    end

    Hope it helps πŸ™‚

  7. Ganesh

    Hi punnet,

    Thanks for the questions. I working & learning ROR 2.6 from last 6 month. Getting gr8 reference for me. You really did a good work.
    I need your help..! Can I fetch address other than the Gmail, Yahoo, Hotmail by Contacts gem?

    Can u mail me mail-Id…?

    Thanks
    Ganesh K.
    ganesh.kathare@wwindia.com

  8. Hi Ganesh,

    Thanks a ton for appreciating what am I posting on ruby on rails.. its good to see that you guys are getting help from my posts…

    will continue that… πŸ™‚

    I think you are able to fetch only Gmail, Hotmail and Yahoo contacts from contacts gem.

    If you are trying to fetch contacts from Facebook, there is a facebooker plugin available for that.

    But you have not cleared in your comment that apart from 3 where do you want to fetch contacts from.

    Cheers πŸ™‚
    Puneet

  9. Phani

    Hi punnet,

    My name is Phani, i need the same thing which ganesh posted, i need to import the contacts from AOL, facebook, orkut and etc( including the default set Yahoo-Gmail-Hotmail.)
    For a social application…..

    Thanks
    Phani

  10. Hi Ganesh and Phani,

    Sorry I was busy in some work.. well I don’t know how to fetch contacts from AOL, Rediff etc. I will look at it and let you guys know soon about it.. but yes I have done how to fetch contacts from Facebook..

    There is one plugin available for this “Facebooker”.. u need to install that using

    ruby script/plugin install git://github.com/mmangino/facebooker.git

    I will soon publish a post on this probably in a day or two… meanwhile go through the docs and I will keep you updating πŸ™‚

    Regards
    Puneet

  11. Ganesh

    Hi puneet,
    I have implemented method of Contacts Gem.. Working very fine.
    Thank you 4 provided Contacts Gem article,
    Nice work..!

    Now I’m facing problem with File download service.. I’m working on resume upload service.. So that I want to make functionality by which will provide a link which get download that particular file from its source location where its is actually uploaded one..

    In short need help to create File Download Service(with File Download dialog Box)

    Thank u.

  12. Ganesh

    Thanks Puneet,
    It worked for my task.. But did some modifications with the syntax…
    like
    send_file “public/data/#{@product.f_name}”, :type=> ‘text/doc; charset=utf-8; header=present’, :disposition=>’inline’

    Where – “public/data” is file location in the project and
    @product.f_name -> file name retrieving from the db.
    Now here no need to pass filename for :filename => ….!

    Thanks 4 co-operation.
    Cheers!!!!!!!!

    – Ganesh Kathare.

  13. Ganesh

    Hi Puneet,

    Today, I come with some more problem where I need your help..!
    1)
    SMS Integration:
    I’m working on applications which will provide service for Mobile No verification by SMS. If number get verify by replied SMS then only he/she can register on the site..! So, in this appln I have to integrate SMS service with its API..But dont know how do I Implement??
    What are the settings it requires in ROR??

    I also have searched this with many help blog on the net.. But not getting it exactly..!
    – I got A/c n API key of ZNISMS.com (paid service.)

    2)
    Payment Gateway Integration:
    For this I stucked on the point where and how do I integrate Payment gateway??? in the application while implementing transaction part of the apllications Buy/Sale service..

    In the both service I have to interprete with third party service… What n How in ROR??

    Please Help..!!!

    Regards,
    -Ganesh K.

  14. Hey puneet,
    I got the solution for 1st problem, Now expected service working very fine..
    But still I stucked @ 2nd point.. So still doing R&D on it..!
    Let me know if you got any solution regarding to 2nd problem..!
    Got some relief due to SMS Integration..!

    Thanks n Cheers..!!
    _Ganesh Kathare.

  15. hey ganesh,

    sorry for replying late dude as I got engaged with some work.. Ganesh I haven’t worked on SMS integration part(first of all), secondly I can’t even refer you some guy who has worked on it, coz I don’t know..

    Better you try to figure out urself.. and post in your blog so that it will be helpful for others…

    Regards
    Puneet Pandey

  16. Ganesh

    Hi puneet,

    Need help for file(imagefile) uploading using ajax

    I made something like

    ## myview.html.erb

    {:action => “uploadimage”}, :html => {:multipart => true}) do %>

    ## with controller
    def uploadimage
    image = params[:custom][:image]
    @custom = Custom.new(@user,image,”greeting1″)
    @custom.save
    end

    I can upload file using form_tag with same code.. But not getting result with form_remote_tag..

    So, can you help..??

    Thanks,
    -Ganesh K

  17. Ganesh

    Hi puneet,

    Need help for file(imagefile) uploading using ajax

    I made something like

    ## myview.html.erb
    {:action => “uploadimage”}, :html => {:multipart => true}) do %>

    ## with controller
    def uploadimage
    image = params[:custom][:image]
    @custom = Custom.new(@user,image,”greeting1β€³)
    @custom.save
    end

    I can upload file using form_tag with same code.. But not getting result with form_remote_tag..

    So, can you help..??

    Thanks,
    -Ganesh K

  18. Ganesh

    Hi puneet,

    Need help for file(imagefile) uploading using ajax

    I made something like

    ## myview.html.erb
    {:action => “uploadimage”}, :html => {:multipart => true}) do %>

    ## with controller
    def uploadimage
    image = params[:custom][:image]
    @custom = Custom.new(@user,image,”greeting1β€³)
    @custom.save
    end

    I can upload file using form_tag with same code.. But not getting result with form_remote_tag..

    So, can you help..??

    Thanks,
    -Ganesh K

  19. Pingback: UVTimes » Blog Archive » Ruby on rails Interview questions

  20. Pingback: Ruby on Rails Interview Questions Links | Ruby On Rails

    1. Thanks for figuring it out.. will definitely include some latest set of questions.. but due to my engagements in other activities, I am not able to update my blog.. So, sincere thanks once again, will keep everyone updating pretty soon πŸ™‚

  21. Srinikondala

    Hello sir,
    i have a simple question,
    could you please answer.
    In Ruby there is a command called ‘require’. Explain what this command used to include a Ruby Gem in a file.

    1. require is used when you need a specific set of actions from a single source… so, say I have a controller called contacts_controller.rb. If, I write require ‘contacts’, It will look out the dependencies(say in environment.rb) If you have written there config.gem ‘contacts’, it will load that file for you…

      Another example is authentication system, where you write the logic once and use it in every controller with require ‘authenticated_system'(for an example)

      That’s how require works.. you can check for IRB(I hope you know abt it) to see if you’re meeting with the dependencies or not..

      Is that the answer of your question ?

      Cheers!!
      Puneet Pandey

  22. Vineeth Pradhan

    Here are some more interview questions..

    1. Explain callbacks.
    2. Explain has_many and has_and_belongs_to_many
    3. What is RESTful?
    4. How do you send mails using ActiveMessaging?
    5. How is mongrel different from WEBrick?
    6. How do you fetch a single row from SQL table in Rails(:first or with some :conditions)?
    7. How do you download an image? Explain the process through MVC architecture
    8. How is URL mapped to your Rails application?

    (Don’t mind if these questions were repeated in the comment section earlier)

      1. Here are some ruby interview questions….

        1. Diff between class methods and instance methods

        2. include vs extend

        3. method overloading in ruby

        4. method overriding in ruby

        5. block vs proc

        6.Ruby variables

  23. chandrasekhar

    Sir
    i am joining new learning course on Ruby on Rails it is easy course and in this RoR features is there in this field

  24. Nitin kumar

    Mr puneet i have some Queries

    1.What pure Object oriented programming provides you in RoR ?

    2.How to connect with two databases from one application?

    3.How many other frameworks as rails for Ruby is there?

    1. for 2nd: You can create a model. Write something like:

      class Post < ActiveRecord::Base
      establish_connection :posts
      set_table_name :posts
      end

      ## Inside your database.yml file
      posts
      adapter: mysql
      host: localhost
      username: YOUR_USER_NAME
      password: YOUR_PASSWORD

      for 3rd: Merb is the other framework. But Rails-3 has features of both Rails and Merb. There is also Mobile framework for Ruby, known as “Rhodes”

      Hope it helps!!

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s