ruby on rails interview questions and answers

[Total: 0    Average: 0/5]

ruby on rails interview questions and answers

ruby on rails interview questions and answers

ruby on rails interview questions and answers

1. Why Ruby on Rails?
Ans: There are lot of advantages of using ruby on rails
1. DRY Principal
2. Convention over Configuration
3. Gems and Plugins
4. Scaffolding
5. Pure OOP Concept
6. Rest Support
7. Rack support
8. Action Mailer
9. Rpc support
10. Rexml Support
11. etc..

2. Explain about the programming language ruby?
Ruby is the brain child of a Japanese programmer Matz. He created Ruby. It is a cross platform object oriented language. It helps you in knowing what your code does in your application. With legacy code it gives you the power of administration and organization tasks. Being open source, it did go into great lengths of development.
3. Explain about ruby names?
Classes, variables, methods, constants and modules can be referred by ruby names. When you want to distinguish between various names you can specify that by the first character of the name. Some of the names are used as reserve words which should not be used for any other purpose. A name can be lowercase letter, upper case letter, number, or an underscore, make sure that you follow the name by name characters.

4. What is the Difference between Symbol and String?
Ans: Symbol are same like string but both behaviors is different based on object_id, memory and process time (cpu time) Strings are mutable , Symbols are immutable.
Mutable objects can be changed after assignment while immutable objects can only be overwritten. For example

p “string object jak”.object_id #=> 22956070
p “string object jak”.object_id #=> 22956030
p “string object jak”.object_id #=> 22956090

p :symbol_object_jak.object_id #=> 247378
p :symbol_object_jak.object_id #=> 247378
p :symbol_object_jak.object_id #=> 247378

p ” string object jak “.to_sym.object_id #=> 247518
p ” string object jak “.to_sym.object_id #=> 247518
p ” string object jak “.to_sym.object_id #=> 247518

p :symbol_object_jak.to_s.object_id #=> 22704460
p :symbol_object_jak.to_s.object_id #=> 22687010
p :symbol_object_jak.to_s.object_id #=> 21141310

And also it will differ by process time

For example:

Testing two symbol values for equality (or non-equality) is faster than testing two string values for equality,

Note : Each unique string value has an associated symbol

5. What is Session and Cookies?
Ans: 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] = “arunkumar” it remains when the browser is not closed
6. What is request.xhr?
Ans: A request.xhr tells the controller that the new Ajax request has come, It always return Boolean values (TRUE or FALSE)
7. What is MVC? and how it Works?
Ans: 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 and interacts with model, model interacts with your database and send the response to controller then controller based on the response give the output parameter to view, 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.

8. What things we can define in the model?
Ans: 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
6. Active record Associations Relationship
9. What is ORM in Rails?
Ans: 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.

10. How many Types of Associations Relationships does a Model has?
Ans: When you have more than one model in your rails application, you would need to create connection between those models. You can do this via associations. Active Record supports three types of associations:
one-to-one : A one-to-one relationship exists when one item has exactly one of another item. For example, a person has exactly one birthday or a dog has exactly one owner.
one-to-many : A one-to-many relationship exists when a single object can be a member of many other objects. For instance, one subject can have many books.
many-to-many : A many-to-many relationship exists when the first object is related to one or more of a second object, and the second object is related to one or many of the first object.
You indicate these associations by adding declarations to your models: has_one, has_many, belongs_to, and has_and_belongs_to_many.

11. Difference between render and redirect?
Ans:

render example:
render :partial
render :new
It will render the template new.rhtml without
calling or redirecting to the new action.

redirect example:
redirect_to :controller => ‘users’, :action => ‘new’
It forces the clients browser to request the
new action.

12. What is the Difference between Static and Dynamic Scaffolding?
Ans: 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.

13. How you run your Rails Application without creating database ?
Ans: You can run application by uncomment the line in environment.rb

Path => rootpath conf/ environment.rb

# Skip frameworks you’re not going to use (only works if using vendor/rails)
config.frameworks -= [ :action_web_service, :action_mailer,:active_record ]
14. How to use sql db or mysql db. without defining it in the database.yml
Ans: You can use ActiveRecord anywhere!

require ‘rubygems’

require ‘active_record’

ActiveRecord::Base.establish_connection({

:adapter => ‘postgresql’,

:user => ‘foo’,

:password => ‘bar’,

:database => ‘whatever’

})

class Task <>

set_table_tame “a_legacy_thingie”

def utility_methods

update_attribute(:title, “yep”)

end

end

Task.find(:first)

Etcetera. It’s ActiveRecord, you know what to do. Going wild:

ActiveRecord::Base.establish_connection(:adapter => “sqlite3”,

:dbfile => “:memory:”)

ActiveRecord::Schema.define(:version => 1) do

create_table :posts do |t|

t.string :title

t.text :excerpt, :body

end

end

class Post <>

validates_presence_of :title

end

Post.create(:title => “A new post!”)

Post.create(:title => “Another post”,

:excerpt => “The excerpt is an excerpt.”)

puts Post.count

15. What are helpers and how to use helpers in ROR?
Ans: 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.

16. What is Active Record?
Ans: Active Record are like Object Relational Mapping(ORM), where classes are mapped to table , objects are mapped to columns and object attributes are mapped to data in the table

17. Ruby Support Single Inheritance/Multiple Inheritance or Both?
Ans: Ruby Supports only Single Inheritance.
You can achieve Multiple Inheritance through MIXIN concept means you achieve using module by including it with classes.
18. How many types of callbacks available in ROR?
Ans:

(-) 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

19. WHAT CAN RAILS MIGRATION DO?
ANS:
create_table(name, options)
drop_table(name)
rename_table(old_name, new_name)
add_column(table_name, column_name, type, options)
rename_column(table_name, column_name, new_column_name)
change_column(table_name, column_name, type, options)
remove_column(table_name, column_name)
add_index(table_name, column_name, index_type)
remove_index(table_name, column_name)
Migrations support all the basic data types: string, text, integer, float, datetime, timestamp, time, date, binary and boolean:

string – is for small data types such as a title.
text – is for longer pieces of textual data, such as the description.
integer – is for whole numbers.
float – is for decimals.
datetime and timestamp – store the date and time into a column.
date and time – store either the date only or time only.
binary – is for storing data such as images, audio, or movies.
boolean – is for storing true or false values.
Valid column options are:

limit ( :limit => “50” )
default (:default => “blah” )
null (:null => false implies NOT NULL)

20. What is the naming conventions for methods that return a boolean result?
Ans: Methods that return a boolean result are typically named with a ending question mark. For example: def active? return true #just always returning true end

21. How do the following methods differ: @my_string.strip and @my_string.strip! ?
Ans: The strip! method modifies the variable directly. Calling strip (without the !) returns a copy of the variable with the modifications, the original variable is not altered.
22. What’s the difference in scope for these two variables: @name and @@name?

Ans: @name is an instance variable and @@name is a class variable

23. What is the log that has to seen to check for an error in ruby rails?
Ans: Rails will report errors from Apache in log/apache.log and errors from the Ruby code in log/development.log. If you’re having a problem, do have a look at what these logs are saying. On Unix and Mac OS X you may run tail -f log/development.log in a separate terminal to monitor your application’s execution.
24. What is the use of global variable $ in Ruby?
Ans: A class variable starts with an @@ sign which is immediately followed by upper or lower case letter. You can also put some name characters after the letters which stand to be a pure optional. A class variable can be shared among all the objects of a class. A single copy of a class variable exists for each and every given class.
To write a global variable you start the variable with a $ sign which should be followed by a name character. Ruby defines a number of global variables which also include other punctuation characters such as $_ and $-k.
For example: If you declare one variable as global we can access any where, where as class variable visibility only in the class Example
class Test
def h
 $a = 5
 @b = 4
Â
while $a > 0
puts $a
$a= $a – 1
end
end
end
test = Test.new
test.h
puts $a                    # 5
puts @b                   #nil

25. Where does the start_tabnav gets informations for tabs rendering in ruby rail?
Ans: The main Symbol let the start_tabnav method know to look for a special MainTabnav class where all the magic happens

26. What is the Install rail package?
Ans: There are several packages that you can download and install. The prebuilt Rails installer called Install rail which currently is only for Windows
27. What is the log that has to seen to check for an error in ruby rails?
Ans: Rails will report errors from Apache in log/apache.log and errors from the Ruby code in log/development.log. If you’re having a problem, do have a look at what these logs are saying. On Unix and Mac OS X you may run tail -f log/development.log in a separate terminal to monitor your application’s execution.

28. What is the use of super in ruby rails?
Ans: Ruby uses the super keyword to call the superclass (Parent class) implementation of the current method

29. What is the difference between nil and false in ruby?
Ans: False is a boolean datatype, Nil is not a data type it have object_id 4

30. How is class methods defined in Ruby?
Ans: A:def self.methodname
——–
——–
end
or
def classname.methodname
——–
——–
end

31. How is object methods defined in Ruby?
Ans:
class jak
def method1
——–
——–
end
end

obj=jak.new
It is single object
def obj.object_method_one
——–
——–
end
obj.Send(object_method_every)
It will be created every for every object creation

32. What are the priority of operators available in Ruby ?
Ans: Something that used in an expression to manipulate objects such as + (plus), – (minus), * (multiply), and / (divide). You can also use operators to do comparisons,such as with < , >, and &&. The priority is based on “BODMAS”

33. What are the looping structures available in Ruby?
Ans: for..in
untill..end
while..end
do..end
Note: You can also use each to iterate a array as loop not exactly like loop
34. What are the object-oriented programming features supported by Ruby and how multiple inheritance supported in ?
Ans: Classes,Objects,Inheritance,Singleton methods,polymorphism(accomplished by over riding and overloading) are some oo concepts supported by ruby. Multiple inheritance supported using Mixin concept.
35. What is the scope of a local variable in Ruby and define it scope ?
Ans: A new scope for a local variable is introduced in the toplevel, a class (module) definition, a method defintion. In a procedure block a new scope is introduced but you can access to a local variable outside the block.
The scope in a block is special because a local variable should be localized in Thread and Proc objects.
36. How is an enumerator iterator handled in Ruby?
Ans: Iterator is handled using keyword ‘each’ in ruby.
For example
number=[1,2,3]
then we can use iterator as
number.each do |i|
puts i
end
Above prints the values of an array $no which is accomplished using iterator.
37. How is visibility of methods changed in Ruby (Encapsulation)?
Ans: By applying the access modifier : Public , Private and Protected access Modifier

38. What is the use of load,require, auto_load,require_relative in Ruby?
Ans: A method that loads and processes the Ruby code from a separate file, including whatever classes, modules, methods, and constants are in that file into the current scope. load is similar, but rather than performing the inclusion operation once, it reprocesses the code every time load is called.
auto_load – Whenever the interpreter call the method that time only it will initiate the method in hat file.
require_relative – It it to load local folder files.

More Questions:
1. Explain choose_weighted method with example
2. What is GIL in ruby ?
3. Is variable is a object ?
Ans : Variable is not an object
4. List of protocols supported by ruby ?
5. Explain Virtual attribute ?
6. How to validate and modify attribute value ?
7. How to serialize data with YAML ?

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 2.2.2 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.
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?

ruby on rails interview questions and answers,ruby on rails interview questions pdf,interview questions ruby on rails developer,ruby on rails developer jobs,ruby on rails examples,ruby on rails tutorial pdf,ruby on rails tutorial,ruby interview questions,ruby on rails tutorial,ruby on rails wiki,ruby on rails tutorial for beginners,ruby on rails tutorial w3schools,ruby on rails tutorial for beginners,ruby on rails tutorial pdf download,ruby on rails tutorial download,ruby on rails tutorial learn rails by example pdf,ruby on rails tutorial pdf,ruby on rails iphone tutorial,ruby on rails tutorial video,ruby on rails wiki tutorial,ruby on rails vs php,ruby on rails wiki engine,ruby on rails tutorial,ruby on rails wiki gem,ruby on rails wiki software,what is ruby on rails,ruby wiki,ruby on rails tutorials for beginners,learn ruby on rails,ruby on rails examples,ruby on rails tutorial,how to install ruby on rails,ruby on rails vs php,ruby on rails windows,ruby on rails jobs

Tags: , , , , , , , , , , , , , , , , , , , , , , , , , , ,