Ruby on Rails Interview Preparation Guide
Download PDF

Ruby on Rails frequently Asked Questions in various Ruby on Rails job Interviews by interviewer. Get preparation of Ruby on Rails job interview

16 Ruby on Rails Questions and Answers:

1 :: What are the differences betweeen Rails 2.x and Rails 3?

(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

3 :: What i have to do to view my project always on browser?

if u run the server (ruby script/server -d) then the command
line will close ,but server is running.The server will run
until the machine is restart. you can start different port
using ruby script/server -p 3001 -d

4 :: Is Ruby is a Scripting Language or Compiled Language?

In general, programming languages fall into one of two
categories: they're either compiled languages or scripting
languages. Let's explore what each of those terms means, and
understand the differences between them.

Compiled Languages: The language in which you write an
application is not actually something that your computer
understands. Your code needs to be translated into bits and
bytes that can be executed by your computer. This process of
translation is called compilation, and any language that
requires compilation is referred to as a compiled language.
Examples of compiled languages include C, C#, and Java.

For a compiled language, the actual compilation is the final
step in the development process. You invoke a compiler --
the software program that translates your final
hand-written, human-readable code into machine-readable code
-- and the compiler creates an executable file. This final
product is then able to execute independently of the
original source code.

Thus, if you make changes to your code, and you want those
changes to be incorporated into the application, you must
stop the running application, recompile it, then start the
application again.

Scripting Languages: On the other hand, a scripting language
such as Ruby, PHP, or Python, relies upon an application's
source code all of the time. Scripting languages don't have
a compiler or a compilation phase per se; instead, they use
an interpreter -- a program that runs on the web server --
to translate hand-written code into machine-executable code
on the fly. The link between the running application and
your hand-crafted code is never severed, because that
scripting code is translated every time it is invoked -- in
other words, for every web page that your application renders.

As you might have gathered from the name, the use of an
interpreter rather than a compiler is the major difference
between a scripting language and a compiled language.

The Great Performance Debate: If you've come from a
compiled-language background, you might be concerned by all
this talk of translating code on the fly -- how does it
affect the application's performance?

These concerns are valid -- translating code on the web
server every time it's needed is certainly more expensive,
performance-wise, than executing pre-compiled code, as it
requires more effort on the part of your machine's
processor. The good news is that there are ways to speed up
scripted languages, including techniques such as code
caching and persistent interpreters. However, both topics
are beyond the scope of this book.

There's also an upside to scripted languages in terms of
performance -- namely, your performance while developing an
application.

Imagine that you've just compiled a shiny new Java
application, and launched it for the first time ... and then
you notice a typo on the welcome screen. To fix it, you have
to stop your application, go back to the source code, fix
the typo, wait for the code to recompile, and restart your
application to confirm that it is fixed. And if you find
another typo, you'll need to repeat that process again.
Lather, rinse, repeat.

In a scripting language, you can fix the typo and just
reload the page in your browser -- no restart, no recompile,
no nothing. It's as simple as that.

5 :: How are Model views and controllers related?

Model, View and Controller(MVC) is 3 tier architecture.
view consits all HTML, javscript pages. its client side
template. while as Model connects to Database describing all
data fields and the relation between then and all business
calculations are controlled by controller

6 :: What is the functionality of Model views and controllers?

Model: Model is responsible for maintaining the database.

views: View is responsible for generating user interface.

controllers: Getting input request from browser and generate
outgoing response.

7 :: What is the difference between sessions and flash?

Session is only for store the small amount of user
data,which data not stored permanently that's when we logged
out from our application.. which session value will removed.
But Flash is used to display the some messages like error
message and useful information messages in view pages...

8 :: What are filters? and how many types of filters are there in ruby?

Filters enable controllers to run shared pre and post
processing code for its actions.

Filter methods are macro-style, that is, they appear at the
top of your controller method, inside the class context,
before method definitions.

the below types of filters in ruby

before_filter,
after_filter,
prepend_before_filter,
prepend_after_filter,
around_filter

9 :: what is ruby software and where and when it is usefull.
Is it usefull to data base developer, if yes...where?

Ruby is Dynamic object oriented programming language . we
can use it for any application like java, or we can use it
for web programming language

10 :: How will be the future for ruby on rails?

Ruby On Rails developed in 1992.But now it is spreading all
over.Coding using ROR is easy we can easily develop web
applications.We can develop webservers and Ajax also can b
implemented in ROR.Similarly we have some disadvantages in
it like the User Interface and easily can do the wrong
things.Finally It is easy to learn and easy to implement
also.Learn it,It has good future.