SlideShare a Scribd company logo
From the Resource Library of Andolasoft.Inc | Web and Mobile App Development Company
Rails 5 – Most Effective Features for Apps Upgradation
Rails is a web application framework written with ruby and rails 5, the best comprehensive
version. In real time, rails 5's new ActionCable and Websocket feature works with Redis.
It requires Ruby 2.2 or above and with Ruby 2.2 you can get few niceties like symbol garbage
collection.
Features:
Let’s have a look at the features:
Action Cable
Action Cable is a framework, used to extend Rails via Websockets to add real-time message
passing functionality. It smoothly integrates WebSockets with the rest of application.
It’s very easy to use and designing of chat, notifications, and presence are much easier.
Action cable makes easy to add real time features to app which increases the needs for
smooth integration.
Turbolinks 5
Turbolinks is the Rails framework for speeding up page navigation by using a bit of
JavaScript to request the next page in the background, then dynamically replace the <body>
with the new page content. In addition to the normal web functionality of Turbolinks, with
version 5 it brings support for mobile clients, allowing native mobile apps to interact.
Use rails instead of rake
For beginners figure out when to use rake and when to use rails is a source of confusion.
Now you can run all rake tasks with the rails keyword. For instance,
rake db:migrate will now become rails db:migrate
From the Resource Library of Andolasoft.Inc | Web and Mobile App Development Company
ActiveRecord Improvements
ActiveRecord::Base#where.or
In last version of Rails - ActiveRecord::Base#where.not was introduced. With Rails 5 -
ActiveRecord::Base#where.or is introduced.
Post.where('id = 1').or(Post.where('id = 2'))
This will create a query as follows -
# => SELECT * FROM posts WHERE (id = 1) OR (id = 2)
#belongs_to is required by default
Rails 5 will have a new configuration option
config.active_record.belongs_to_required_by_default = true, which triggers a validation
error when trying to save a model where belongs_to associations are not present.
config.active_record.belongs_to_required_by_default can be changed to false and with this
keep old Rails behavior or we can disable this validation on each belongs_to definition, just
passing an additional option optional: true as follows:
class Book < ActiveRecord::Base
belongs_to :author, optional: true
End
has_secure_token landed in ActiveRecord
ActiveRecord model now has token attributes in an easier way. Common scenarios for token
attributes are for cases when we need to create an invitation token or a password reset
token.
Here is an example:
class Invite < ActiveRecord::Base
has_secure_token :invitation_code
end
invite = Invite.new
invite.save
invite.invitation_code # => 44539a6a59835a4ee9d7b112
invite.regenerate_invitation_code # => true
From the Resource Library of Andolasoft.Inc | Web and Mobile App Development Company
ApplicationRecord
Up to Rails 4.2, all models inherited from ActiveRecord::Base. But from Rails 5, all models do
inherit from ApplicationRecord.
class Post < ApplicationRecord
end
# app/models/application_record.rb
class ApplicationRecord < ActiveRecord::Base
self.abstract_class = true
end
Render a template outside controllers
Rails 5 allows to render templates or inline code outside controllers. This feature is
important and useful for ActiveJob and the new ActionCable.
# render inline code
ApplicationController.render inline: '<%= "Hello Rails" %>' # => "Hello Rails"
# render a template
ApplicationController.render 'sample/index' # => Rendered sample/index.html.erb within
layouts/application (0.0ms)
# render an action
SampleController.render :index # => Rendered sample/index.html.erb within
layouts/application (0.0ms)
# render a file
ApplicationController.render file: ::Rails.root.join('app', 'views', 'sample', 'index.html.erb') #
=> Rendered sample/index.html.erb within layouts/application (0.8ms)
Rails API
Rails 5 allows generating API in Rails app, cleans out all the unnecessary middleware for the
app. When create a new rails application using new rails API, will get the configuration
which assumes you are working with JSON not with HTML.
Command to Create Rails API Application:
rails new myapp-api –api
From the Resource Library of Andolasoft.Inc | Web and Mobile App Development Company
As per rubyonrails.org maintenance policy, the release of Rails 5.0 means that bug fixes only
applies to 5.0.x, regular security issues to 5.0.x and 4.2.x, and severe security issues also to
5.0.x and 4.2.x (but when 5.1 drops, to 5.1.x, 5.0.x, and 4.2.x). These mean 4.1.x and below
are essentially unsupported! Ruby 2.2.2+ is now the only supported version of Rails 5.0+.
Lots of new features have been added in Rails 5 and it’s time to upgrade your applications
for better performance. Hope you liked this topic on Rails 5; please feel free to add up if
missing anything.
Thinking to upgrade your app? Let’s have a discussion.
Email us at info@andolasoft.com or call us at 408-625-7188
Http://www.andolasoft.com

More Related Content

Rails 5 – most effective features for apps upgradation

  • 1. From the Resource Library of Andolasoft.Inc | Web and Mobile App Development Company Rails 5 – Most Effective Features for Apps Upgradation Rails is a web application framework written with ruby and rails 5, the best comprehensive version. In real time, rails 5's new ActionCable and Websocket feature works with Redis. It requires Ruby 2.2 or above and with Ruby 2.2 you can get few niceties like symbol garbage collection. Features: Let’s have a look at the features: Action Cable Action Cable is a framework, used to extend Rails via Websockets to add real-time message passing functionality. It smoothly integrates WebSockets with the rest of application. It’s very easy to use and designing of chat, notifications, and presence are much easier. Action cable makes easy to add real time features to app which increases the needs for smooth integration. Turbolinks 5 Turbolinks is the Rails framework for speeding up page navigation by using a bit of JavaScript to request the next page in the background, then dynamically replace the <body> with the new page content. In addition to the normal web functionality of Turbolinks, with version 5 it brings support for mobile clients, allowing native mobile apps to interact. Use rails instead of rake For beginners figure out when to use rake and when to use rails is a source of confusion. Now you can run all rake tasks with the rails keyword. For instance, rake db:migrate will now become rails db:migrate
  • 2. From the Resource Library of Andolasoft.Inc | Web and Mobile App Development Company ActiveRecord Improvements ActiveRecord::Base#where.or In last version of Rails - ActiveRecord::Base#where.not was introduced. With Rails 5 - ActiveRecord::Base#where.or is introduced. Post.where('id = 1').or(Post.where('id = 2')) This will create a query as follows - # => SELECT * FROM posts WHERE (id = 1) OR (id = 2) #belongs_to is required by default Rails 5 will have a new configuration option config.active_record.belongs_to_required_by_default = true, which triggers a validation error when trying to save a model where belongs_to associations are not present. config.active_record.belongs_to_required_by_default can be changed to false and with this keep old Rails behavior or we can disable this validation on each belongs_to definition, just passing an additional option optional: true as follows: class Book < ActiveRecord::Base belongs_to :author, optional: true End has_secure_token landed in ActiveRecord ActiveRecord model now has token attributes in an easier way. Common scenarios for token attributes are for cases when we need to create an invitation token or a password reset token. Here is an example: class Invite < ActiveRecord::Base has_secure_token :invitation_code end invite = Invite.new invite.save invite.invitation_code # => 44539a6a59835a4ee9d7b112 invite.regenerate_invitation_code # => true
  • 3. From the Resource Library of Andolasoft.Inc | Web and Mobile App Development Company ApplicationRecord Up to Rails 4.2, all models inherited from ActiveRecord::Base. But from Rails 5, all models do inherit from ApplicationRecord. class Post < ApplicationRecord end # app/models/application_record.rb class ApplicationRecord < ActiveRecord::Base self.abstract_class = true end Render a template outside controllers Rails 5 allows to render templates or inline code outside controllers. This feature is important and useful for ActiveJob and the new ActionCable. # render inline code ApplicationController.render inline: '<%= "Hello Rails" %>' # => "Hello Rails" # render a template ApplicationController.render 'sample/index' # => Rendered sample/index.html.erb within layouts/application (0.0ms) # render an action SampleController.render :index # => Rendered sample/index.html.erb within layouts/application (0.0ms) # render a file ApplicationController.render file: ::Rails.root.join('app', 'views', 'sample', 'index.html.erb') # => Rendered sample/index.html.erb within layouts/application (0.8ms) Rails API Rails 5 allows generating API in Rails app, cleans out all the unnecessary middleware for the app. When create a new rails application using new rails API, will get the configuration which assumes you are working with JSON not with HTML. Command to Create Rails API Application: rails new myapp-api –api
  • 4. From the Resource Library of Andolasoft.Inc | Web and Mobile App Development Company As per rubyonrails.org maintenance policy, the release of Rails 5.0 means that bug fixes only applies to 5.0.x, regular security issues to 5.0.x and 4.2.x, and severe security issues also to 5.0.x and 4.2.x (but when 5.1 drops, to 5.1.x, 5.0.x, and 4.2.x). These mean 4.1.x and below are essentially unsupported! Ruby 2.2.2+ is now the only supported version of Rails 5.0+. Lots of new features have been added in Rails 5 and it’s time to upgrade your applications for better performance. Hope you liked this topic on Rails 5; please feel free to add up if missing anything. Thinking to upgrade your app? Let’s have a discussion. Email us at info@andolasoft.com or call us at 408-625-7188 Http://www.andolasoft.com