Why ApplicationRecord

27 views
Skip to first unread message

fugee ohu

unread,
Mar 9, 2018, 9:58:23 AM3/9/18
to Ruby on Rails: Talk
Why create an ApplicationRecord class inheriting from ActiveRecord::Base and then have all models  inherit from ApplicationRecord instead of ActiveRecord::Base ?

Aboobacker M K

unread,
Mar 9, 2018, 10:09:34 AM3/9/18
to rubyonra...@googlegroups.com
You can find rationale from original PR which introduced this feature https://github.com/rails/rails/pull/22567


On Fri, Mar 9, 2018 at 8:28 PM, fugee ohu <fuge...@gmail.com> wrote:
Why create an ApplicationRecord class inheriting from ActiveRecord::Base and then have all models  inherit from ApplicationRecord instead of ActiveRecord::Base ?

--
You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to rubyonrails-talk+unsubscribe@googlegroups.com.
To post to this group, send email to rubyonrails-talk@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/rubyonrails-talk/25c8ec85-1ec8-4740-8d27-a55a1461b038%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.



--
Regards


Aboobacker MK
 
Software Developer | Red Panthers | Engineering
 
phone: 8289976088

Robert Phillips

unread,
Mar 10, 2018, 9:39:43 PM3/10/18
to Ruby on Rails: Talk
On Friday, 9 March 2018 14:58:23 UTC, fugee ohu wrote:
>Why create an ApplicationRecord class inheriting from ActiveRecord::Base and then have all models  inherit from ApplicationRecord instead of ActiveRecord::Base ?

I know a guy that doesn't use rails generate controller or rails generate model..  So when he makes a controller he just handcodes it.

For him I suppose it'd be an advantage, as 

It is easier to write 

class Abc < ApplicationController
end

than to write

class Abc < ActionController::Base
  protect_from_forgery with: :exception
end


Robert Phillips

unread,
Mar 10, 2018, 9:40:48 PM3/10/18
to Ruby on Rails: Talk
class Abc should say class AbcController 

Walter Lee Davis

unread,
Mar 11, 2018, 10:43:09 AM3/11/18
to rubyonra...@googlegroups.com
It's meant to be a way to gather common features into one place. If all your routes are meant to have CanCanCan protecting them from unauthorized access, then you may see this in the ApplicationController:

unless: :devise_controller?
before_action :authenticate_user!
load_and_authorize_resource
end

Which means that you won't forget to add that to your controllers and leave something important exposed to the public. There's lots of other useful stuff you can wedge in the ApplicationController that you need in all controllers, and thus only have to write once. Inheritance can be useful!

Walter

>
> --
> You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to rubyonrails-ta...@googlegroups.com.
> To post to this group, send email to rubyonra...@googlegroups.com.
> To view this discussion on the web visit https://groups.google.com/d/msgid/rubyonrails-talk/b8f275c5-fde0-4819-9c62-8d16d176ef77%40googlegroups.com.
Reply all
Reply to author
Forward
0 new messages