1. Which of the following will return a User object when used with
a model which deals with a table named User?
Answers:
• User.new
• User.destroy
• User.find
• User.save
2. In the case of Rails application performance optimization,
select all valid ways to do assets compilation:
Answers:
• Running the rake task with the assets:precompile
parameter when CSS and JavaScript files are updated.
• Set a true value for the config.assets.compile parameter in the
config/environments/production.rb file.
• Implementing the Rails asset pipeline feature to minify
JavaScript & CSS assets.
• All of these.
3. What is the best way to get the current request URL in Rails?
Answers:
• request.url
• request.request_uri
• request.fullpath
• request.current_path
4. How can a value be stored so that it's shared across an entire
request (i.e. make it accessible in controllers, views and models)?
Answers:
• Put it in a global variable.
• Create a Singleton and store it in a class
variable.
• Store it in a thread locally.
5. Which of the following commands adds the data model info to the
model file?
Answers:
• bundle install
• generate model
• annotate
• Rails server
6. Which of the following HTML template languages are supported by
Ruby?
Answers:
• Embedded Ruby
• HAML
• Mustache
• Razor
7. In a has_many association, what is the difference between build
and new?
// user.rb
has_many :posts
// post.rb
belongs_to :user
Answers:
• 'new' sets the foreign key while 'build' does not.
• 'build' sets the foreign key while 'new' does not.
• 'build' sets the foreign key and adds it to the
collection.
• 'new' sets the foreign key and adds it to the collection.
8. What is the output of the following code?
"test"*5
Answers:
• type casting error
• test5
• 5
• testtesttesttesttest
9. When using full-page caching, what happens when an incoming
request matches a page in the cache?
Answers:
• The web-server serves the file directly from
disk, bypassing Rails.
• Rails checks to see if there is a cached page on disk and passes
it onto the server.
• Rails checks its in-memory cache and passes the page onto the
server.
10. What is the difference between _url and _path while being used
in routes?
Answers:
• _url is absolute while _path is relative.
• _path is relative while _path is absolute.
• _path is used in controllers while _url is used in views.
• _path is used in views while _url is used in controllers.
11. Which of the following code samples will get the index of
|page| inside of a loop?
Answers:
• <% @images.each.do |page,index| %> <% end %>
• <% @images.each_with_index do |page, index|
%> <% end %>
• <% @images.collect.each.at_index do |page, index| %> <%
end %>
• None of these
12. Which of the following choices will write routes for the API
versioning scenario described below?
/api/users returns a 301 to /api/v2/users
/api/v1/users returns a 200 of users index at version 1
/api/v3/users returns a 301 to /api/v2/users
/api/asdf/users returns a 301 to /api/v2/users
Answers:
• namespace :api do namespace :v1 do resources :users end
namespace :v2 do resources :users end match 'v:api/*path', :to =>
redirect("/api/v2/%{path}") match '*path', :to =>
redirect("/api/v2/%{path}") end
• namespace :api do resources :users end namespace :v2 do
resources :users end match 'v:api/*path', :to =>
redirect("/api/v1/%{path}") match '*path', :to =>
redirect("/api/v1/%{path}") end
• namespace :api do scope :module => :v3,
¤t_api_routes namespace :v3, ¤t_api_routes namespace :v2,
¤t_api_routes namespace :v1, ¤t_api_routes match
":api/*path", :to => redirect("/api/v3/%{path}") end
• None of these
13. What is the output of the following Ruby code?
puts "The multiplication output of 10,10,2 is
#{10*10*2}"
Answers:
• 200.
• The multiplication output of 10,10,2 is #{10*10*2}.
• The multiplication output of 10,10,2 is 200.
• The code will give a syntax error.
14. What is difference between "has_one" and
"belong_to"?
Answers:
• "has_one" should be used in a model whose table have
foreign keys while "belong_to" is used with an associated table.
• "belong_to" should be used in a model
whose table have foreign keys while "has_one" is used with an
associated table.
• The two are interchangeable.
• None of these.
15. Which of the following is the correct way to know the Rails
root directory path?
Answers:
• RAILS_ROOT
• Rails.root
• Rails.root.show
• Rails.show.root
16. What is best way to create primary key as a string field
instead of integer in rails.
Answers:
• when creating a new table don't add primary key
using this create_table users, :id => false do |t| t.string :id, :null =>
false ...... end execute("ALTER TABLE users ADD PRIMARY KEY (id)") if
not using id as primary key then in users model add the following line class
User < ActiveRecord::Base self.primary_key = "column_name" ....
end
• you can add a key to column name to make it primary create_table
users :id => false do |t| t.string :column_name, :primary => true end
17. In a Rails application, a Gemfile needs to be modified to make
use of sqlite3-ruby gems. Which of the following options will use these gems,
as per the new Gemfile?
Answers:
• install bundle Gemfile
• bundle install
• mate Gemfile
• gem bundle install
18. What is the recommended Rails way to iterate over records for
display in a view?
Answers:
• Implicitly loop over a set of records, and send
the partial being rendered a :collection.
• Use each to explicitly loop over a set of records.
• Use for to fetch individual records explicitly in a loop.
19. where we use attr_accessor and attr_accessible in rails ?
Answers:
• controller
• helper
• model
• view
20. Given the following code, where is the "party!"
method available?
module PartyAnimal
def self.party!
puts "Hard!
Better! Faster! Stronger!"
end
end
class Person
include PartyAnimal
end
Answers:
• PartyAnimal.party!
• Person.party!
• Person.new.party!
• Both PartyAnimal.party! and Person.party!
• None of these
21. Which part of the MVC stack does ERB or HAML typically
participate in?
Answers:
• Class
• Controller
• Model
• Module
• View
22. Which of the following items are stored in the models
subdirectory?
Answers:
• helper classes
• database classes
• HTML layout templates
• Config files
23. What is the output of the following code in Ruby?
x= "A" + "B"
puts x
y= "C" << "D"
puts y
Answers:
• AB CD
• AB C
• AB D
• AB DC
24. Which gem is used to install a debugger in Rails 3?
Answers:
• gem 'ruby-debug1'
• gem "ruby-debug19"
• gem "debugger19"
• gem "ruby-debugger"
25. What exception cannot be handled with the rescue_from method
in the application controller?
e.g
class ApplicationControllers < ActionController::Base
rescue_from Exception, with: error_handler
..........
end
Answers:
• Server errors
• Record not found (404)
• Routing errors
• All of these
26. What component of Rails are tested with unit tests?
Answers:
• Models
• Controllers
• View helpers
27. Which of the following replaced the Prototype JavaScript
library in Ruby on Rails as the default JavaScript library?
Answers:
• jQuery
• Ajax
• Script.aculo.us
• ajax-li
28. If a method #decoupage(n) is described as O(n^2), what does
that mean?
Answers:
• The fewest number of operations it will perform is n*n.
• The worst case run time is proportional to the
size of the square of the method's input.
• The method operates by squaring the input.
• The return value for the method will be the length of the input
squared.
29. What is green-threading?
Answers:
• A design pattern where a fixed-size pool of threads is shared
around a program.
• When threads are emulated by a virtual machine
or interpreter.
• Where programs are run across multiple CPUs.
30. Which of the following assertions are used in testing views?
Answers:
• assert_valid
• assert_select_email
• assert_select_encoded
• css_select
31. Is an AJAX call synchronous or asynchronous?
Answers:
• Asynchronous
• Synchronous
• Either; it is configurable
32. Which of the following commands will clear out sample users
from the development database?
Answers:
• rake db:migrate
• rake db:reset
• rake db:rollback
33. Given below are two statements regarding the Ruby programming
language:
Statement X: "redo" restarts an iteration of the most
internal loop, without checking loop condition.
Statement Y: "retry" restarts the invocation of an
iterator call. Also, arguments to the iterator are re-evaluated.
Which of the following options is correct?
Answers:
• Statement X is correct, but statement Y is incorrect.
• Statement X is incorrect, but statement Y is correct.
• Both statements are correct.
• Both statements are incorrect.
34. Choose the best way to implement sessions in Rails 3:
A) Using CookieStore
B) By creating a session table and setting
config/initializers/session_store.rb with
Rails.application.config.session_store :active_record_store
C) By setting config/initializers/session_store.rb with
Rails.application.config.session_store :active_record_store only
Answers:
• A
• B
• C
• B and C
35. Which of the following is the correct way to skip
ActiveRecords in Rails 3?
Answers:
• ActiveRecords cannot be skipped.
• Use option -O while generating application
template.
• Use option -SKIP_AR while generating the application template.
• Add new line SKIP: ACTIVERECORD in config.generators.
36. Which of the following is the default way that Rails seeds
data for tests?
Answers:
• Data Migrations
• Factories
• Fixture Factories
• Fixtures
37. Which of the following options, when passed as arguments,
skips a particular validation?
Answers:
• :validate => skip
• :validate => off
• :validate => disable
• :validate => false
38. What declaration would you use to set the layout for a
controller?
Answers:
• layout 'new_layout'
• set_layout 'new_layout'
• @layout = 'new_layout'
39. What is the output of the following code?
puts "aeiou".sub(/[aeiou]/, '*')
Answers:
• *
• *****
• *eiou
• nil
40. Suppose a model is created as follows:
rails generate model Sales
rake db:migrate
What would be the best way to completely undo these changes,
assuming nothing else has changed in the meantime?
Answers:
• rails reset models; rake db:rollback
• rails destroy model Sales; rake db:rollback
• rake db:rollback; rails rollback model Sales
• rake db:rollback; rails destroy model Sales
41. What is the difference between :dependent => :destroy and
:dependent => :delete_all in Rails?
Answers:
• There is no difference between the two; :dependent =>
:destroy and :dependent => :delete_all are semantically equivalent.
• In :destroy, associated objects are destroyed
alongside the object by calling their :destroy method, while in :delete_all,
they are destroyed immediately, without calling their :destroy method.
• In :delete_all, associated objects are destroyed alongside the
object by calling their :destroy method, while in :destroy, they are destroyed
immediately, without calling their individual :destroy methods.
• None of these.
42. Which of the following methods is used to check whether an
object is valid or invalid?
Answers:
• .valid? and .invalid?
• valid() and invalid()
• isvalid and isinvalid
43. Which of the following is the correct way to rollback a
migration?
Answers:
• A migration cannot be rollbacked.
• rake db:rollback STEP=N (N is the migration
number to be rollbacked)
• rake db:migrate:reset: (N) (N is the migration number to be
rollbacked)
• rake db:rollback migration=N (N is the migration number to be
rollbacked)
44. Which of the following is the correct syntax for an input
field of radio buttons in form_for?
Answers:
• <%= f.radio_button :contactmethod, 'sms'
%>
• <%= f.radio_button_tag :contactmethod, 'sms' %>
• <%= radio_button_tag :contactmethod, 'sms' %>
• <%= f.radio_button "contactmethod", 'sms' %>
45. Which is the best way to add a page-specific JavaScript code
in a Rails 3 app?
<%= f.radio_button :rating, 'positive', :onclick =>
"$('some_div').show();" %>
Answers:
• <% content_for :head do %> <script type="text/javascript">
<%= render :partial => "my_view_javascript" </script>
<% end %> Then in layout file <head> ... <%= yield :head %>
</head>
• In the application_helper.rb file: def include_javascript (file)
s = " <script type=\"text/javascript\">" + render(:file
=> file) + "</script>" content_for(:head, raw(s)) end Then
in your particular view (app/views/books/index.html.erb in this example) <%
include_javascript 'books/index.js' %>
• In the controller: def get_script render :file =>
'app/assessts/javascripts/' + params[:name] + '.js' end def get_page @script =
'/' + params[:script_name] + '.js?body=1' render page end In View <script
type="text/javascript",:src => @script>
• None of these
46. In order to enable locking on a table, which of the following
columns is added?
Answers:
• lock_version column
• identity column
• primary key column
• lock_optimistic column
47. If a float is added to an integer, what is the class of the
resulting number? i.e. 1.0 + 2
Answers:
• Integer
• Float
• BigDecimal
48. In a Rails Migration, which of the following will make a
column unique, and then have it indexed?
Answers:
• add_index :table_name, :column_name, :unique
=> true
• add_index :unique => true ,:table_name, :column_name
• add_index :table_name, [:column_name_a, :unique => true
,:column_name_b], :unique => true
• None of these
49. Which of the following will disable browser page caching in
Rails?
Answers:
• expire_page(:controller => 'products',
:action => 'index')
• expire_fragment(:controller => 'products', :action =>
'index')
• expire_page_fragment('all_available_products')
• expire_fragment('all_available_products')
50. Which of the following commands will test a particular test
case, given that the tests are contained in the file test/unit/demo_test.rb,
and the particular test case is test_one?
Answers:
• $ ruby -Itest test/unit/demo_test.rb -n test_one
• $ ruby -Itest test/unit/demo_test.rb -a test_one
• $ ruby -Itest test/unit/demo_test.rb test_one
• $ ruby -Itest test/unit/demo_test.rb -t test_one
51. Consider the following code snippet:
def index
render
end
The corresponding index.html.erb view is as following:
<html>
<head>
<title>Ruby on Rails sample application |
<%=@title%></title>
</head>
<body></body>
</html>
Which of the following options is correct?
Answers:
• The application will give an exception as @title variable is not
defined in the controller.
• The HTML page will render with the title: Ruby on Rails sample
application | <%=@title%>.
• The HTML page will render with the title: Ruby
on Rails sample application |.
• The HTML page will render with the title: Ruby on Rails sample
application.
52. Unit tests are used to test which of the following components
of Ruby on Rails?
Answers:
• Models
• Controllers
• Views
• Helper classes
53. If a controller is named "Users", what would its
helpers module be called?
Answers:
• UsersHelper
• UserControllerHelper
• UserHelp
54. Which of the following serves as a structural skeleton for all
HTML pages created?
Answers:
• application.html.erb
• default.html.erb
• index.html.erb
• layout.html.erb
55. Which of the following statements is incorrect?
Answers:
• Rails does not support ODBC connectivity.
• Rails can rollback database changes in development mode.
• Rails can work and connect with multiple databases.
• Rails database information is stored in the database.yml file.
56. What is the Singleton design pattern?
Answers:
• A class for which there is only ever one
instance.
• A single feature application, intended to enhance usability by
keeping things simple.
• A class which is never instanced, but acts as a container for
methods which are used by it's subclasses.
57. Users who are new to MVC design often ask how to query data
from Views. Is this possible? And if so, is this a good idea?
Answers:
• It is not possible, because ActiveRecord queries cannot be made
from Views.
• It is not possible, because Controllers do not provide enough
information to the Views.
• It is possible, but it is a bad idea because
Views should only be responsible for displaying objects passed to them.
58. What does REST stand for?
Answers:
• Ruby Enclosed Standard Templating
• Resource Standard Transfer
• REasonable Standards Testing
• REpresentational State Transfer
• Rights Enabled Safety Tunnel
59. With the two models Hive and Bee; when creating a belongs_to
association from the Bee model to Hive, what is the foreign key generated on
Bee?
Answers:
• hive_id
• hives_id
• ee_id
60. Which of the following is not true about log levels in Ruby on
Rails?
Answers:
• The available log levels are: :debug, :info,
:warn, :error, and :fatal, corresponding to the log level numbers from 1 up to
5 respectively.
• To check the current log level, the Rails.logger.level method
has to be called.
• By default, each log is created under Rails.root/log/ and the
log file name is environment_name.log.
• The default Rails log level is error in production mode and
debug in development and test mode.
61. When a new controller named "admin2" is created, the
JS and the CSS files are created in:
Answers:
• controllers
• helpers
• assets
• views
62. Select all incorrect statements regarding the Ruby Version
Manager (RVM):
Answers:
• RVM is a command-line tool which allows developers to easily
install, manage, and work with multiple Ruby environments from interpreters to
sets of gems.
• RVM provides a revision control tool to maintain
current and historical versions of files such as source code, web pages, and
documentation.
• Test suites, rake tasks, benchmarks and gem commands can be run
against multiple Ruby versions at the same time with RVM.
• RVM cannot automate the installation and maintenance of gems, it
has to be done manually.
63. Which of the following is not a built-in Rails caching
strategy used to reduce database calls?
Answers:
• Page Caching
• Fragment Caching
• Object Caching
• Query Caching
64. In a Rails application, the developmental and production
configuration are stored in the:
Answers:
• config/environment folder
• public folder
• spec folder
• task folder
65. What is the convention for methods which end with a question
mark? e.g. #all?, #kind_of?, directory?
Answers:
• They should always require arguments.
• They should always return a boolean value.
• They should always report a value of the object they're being
called on.
66. Which of the following correctly handles the currency field?
A) add_column :items, :price, :decimal, :precision => 8, :scale
=> 2
B) add_money :items, :price, currency: { present: false }
Answers:
• A
• B
• Both A and B are correct.
• Both A and B are incorrect.
67. How can a partial called "cart" be rendered from a
controller called "ProductsController", assuming the partial is in a
directory called "shared"?
Answers:
• render :partial => 'shared/cart'
• partial 'shared/cart'
• render 'cart'
68. What does the 4xx series of HTTP errors represent?
Answers:
• They are intended for cases in which the server
seems to have encountered an error.
• They are intended for cases in which the client seems to have
encountered an error.
• They indicate that further action needs to be taken by the user
agent in order to fulfill the request.
• They indicate that no further action can be taken by the user
agent.
69. Which of the following validations in Rails checks for null
fields?
Answers:
• validates_presence_of
• validates_length_of
• validates_confirmation_of
• validates_uniqueness_of
70. Using ERB for views, what filename should be given to a
partial called 'login'?
Answers:
• partial_login.e
• _login.html.e
• login.html.e
71. What is output of following statements?
1) "".nil? == "".empty? &&
"".blank? == "".empty?
2) !"".nil? == "".empty? &&
"".blank? == "".empty?
3) nil.nil? == nil.empty? && nil.blank? == nil.empty?
4) !"".blank? == "".present?
5) "".any? == !"".empty?
6) " ".blank? == " ".empty?
Answers:
• 1) false 2) true 3) NoMethodError: undefined
method `empty?' for nil:NilClass 4) true 5) NoMethodError: undefined method
`any?' for "":String 6) false
• 1) false 2) NoMethodError: undefined method `empty?' for
"":String 3) true 4) true 5) NoMethodError: undefined method `any?'
for "":String 6) false
• 1) false 2) true 3) true 4) true 5) false 6) false
• 1) false 2) true 3) false 4) true 5) true 6) false
72. For the String class, what's the difference between
"#slice" and "#slice!"?
Answers:
• None, "#slice" is just an alias for
"#slice!".
• There is no "#slice!" method in Ruby on Rails.
• "#slice" returns a new object,
"#slice!" destructively updates — mutates — the object's value.
73. Which of the following controller actions (by default) are
best suited to handle the GET HTTP request?
Answers:
• index
• show
• create
• edit
• update
74. Rails automatically requires certain files in an application.
Which of the following files are automatically included without an explicit
'require' being necessary?
Answers:
• All files in lib.
• All files in models, views, controllers, and files named
rails.rb in lib.
• All files in models, views, controllers, and any
init.rb in plugins.
• Only files explicitly referenced from an initializer in
config/initializers.
75. Which of the following is true about writing tests for a Ruby
on Rails application?
Answers:
• Rails semi-automates the process of writing tests. It starts by
producing skeleton test code in the background while models and controllers are
being written.
• Running tests in Rails ensures that the code adheres to the
desired functionality even after major code refactoring.
• Rails tests can simulate browser requests, and thus test the
application's response without having to test it through a browser.
• All of these.
76. What is the behavior of class variables with subclasses?
Answers:
• Subclasses inherit a default value for the class variable, which
can then be modified for just the subclass.
• Class variables are shared between between all
classes in the hierarchy.
• Class variables are not inherited.
77. There is a table named Product in a Rails application. The
program is required to fetch any 5 rows where the productid is 2. Which of the
following is the correct option to perform this action?
Answers:
• Product.find(:productid=>2), :offset=>5
• Product.find(:productid=>2), :limit=>5
• Product.find(:productid=>2), :only=>5
78. Consider the following information for a User view:
user_path named route with value "/users/"
@user = 1
Now, consider the following code in the HTML erb template:
<%= link_to user_path(@user), "Angel" %>
What will be the HTML output of this code?
Answers:
• a href='/users/1'>Angel</a
• a href='Angel'>/users/1</a
• a href='/users/1'>/users/1</a
• a href='Angel'>Angel</a
79. If a model called BlogComment is defined, what would its DB
table be called?
Answers:
• blog_comment
• blogcomments
• blog_comments
80. What is the output of the following code?
$val = 20
print "Sample Text\n" if $val
Answers:
• 20
• Sample Text
• No output
• Syntax error
81. Which of the following options will disable the rendering of
the view associated with a controller action?
Answers:
• render :layout=>false
• render :layout=>nil
• render :layout=>disabled
• render :layout=>off
82. The =~ operator is used to do inline Regular Expression
matching, for instance:
"function" =~ /fun/
"function" =~ /dinosaurs/
What are possible return values for the =~ matcher?
Answers:
• true, false
• "fun", nil
• 1 and 0 only
• 0 and nil only
• nil, 0, and any positive integer
83. Which of the following options is used to create a form HTML
in the erb files?
Answers:
• form_for
• create_form
• form_do
• form
84. Which of the following actions is fired by default when a new
controller is created?
Answers:
• index
• run
• show
• login
No comments:
Post a Comment