Re: Split ActiveRecord::Base model

47 views
Skip to first unread message

Matt Jones

unread,
Mar 23, 2013, 11:19:06 AM3/23/13
to rubyonra...@googlegroups.com


On Friday, 22 March 2013 09:56:23 UTC-4, Paulo Ribeiro wrote:
Hey guys. Im looking to make a model with fewer included modules from ActiveRecord. Basically, i want to include only the modules so it can work fine inside rails and with the methods to access the database.

I tried to do it by myself, but i could make it work.

Which modules should i include to reach my needs?

You've explained *what* you're trying to do, but not *why* - explaining why you want to do this might make it easier to figure out how to make it happen.

--Matt Jones
 

Paulo Ribeiro

unread,
Mar 24, 2013, 12:59:00 PM3/24/13
to rubyonra...@googlegroups.com
Thx for your reply. I want to make the models more light. I want to make models what will only access the database (CRUD), without callbacks and the other stuffs it loads.

Matt Jones

unread,
Mar 25, 2013, 1:39:09 PM3/25/13
to rubyonra...@googlegroups.com


On Sunday, 24 March 2013 12:59:00 UTC-4, Paulo Ribeiro wrote:
Thx for your reply. I want to make the models more light. I want to make models what will only access the database (CRUD), without callbacks and the other stuffs it loads.


Not to be rude, but this is still "what" you want to do. 

*Why* are you trying to make the models "light"? Are you working in a resource-constrained environment? Splitting off the callback system is going to break plenty of stuff - for instance, :dependent => :destroy on associations is implemented with a callback. Would it be sufficient to simply not use features you don't want?

--Matt Jones

Paulo Ribeiro

unread,
Mar 25, 2013, 3:51:47 PM3/25/13
to rubyonra...@googlegroups.com
Im trying to make my own solution. Instead of working with MVC, im working with another patterns as well. And i want ActiveRecord::Base model only to interact with the database and nothing else. My business logic is going inside another models.

Sorry if i wasn't clear enough before and thanks again for your time. =p 

tamouse mailing lists

unread,
Mar 26, 2013, 12:49:23 AM3/26/13
to rubyonra...@googlegroups.com
If that's the case, maybe you just want to work with the appropriate
data base gem/driver directly? (mysql2, sqlite3, postgres, etc)

Paulo Ribeiro

unread,
Mar 26, 2013, 10:15:32 AM3/26/13
to rubyonra...@googlegroups.com
Well, its an option. But i would like the code readbility of the active_record methods and some good funcionalities like the finders. Im still using rails on my projects, i just want to make sure that if somebody that is working on this project too, doesnt use callbacks and stuffs. I want the models only to access the database. 

tamouse mailing lists

unread,
Mar 27, 2013, 4:26:57 AM3/27/13
to rubyonra...@googlegroups.com
If you don't use the callback and stuffs, do they actually get loaded?
I thought ActiveRecord only loaded the stuff that is getting used...

tamouse mailing lists

unread,
Mar 27, 2013, 4:31:11 AM3/27/13
to rubyonra...@googlegroups.com
Also, hmm, wondering where you are on this project to actually see
that there is a practical need to worry about this at this point. Have
you seen performance benchmarks on your app already that show this is
now a problem? What I've found is that the stuff you seem to like, the
ORMish stuff and finders, actually ends up causing some serious
performance bottlenecks if you don't think about how you gather data
in your application, and can generate some horrendous looking SQL.

Paulo Henrique Lopes Ribeiro

unread,
Mar 27, 2013, 8:44:53 AM3/27/13
to rubyonra...@googlegroups.com
Im not worried about performance. Im worried that i want to use it to access the database only. All the other logics i want in a separate class. The callback logics i'm moving to a service. Some other logics to a decorator and accessor. 

I want to do this only to make sure that a person that does not know the flow of developing can't use it in a wrong way. I have a project with this idea on github, but right now i didnt push any decorator, accessor, or model related logic. I have pushed only the work i made on controller to use service. 

But still, if u want to have a look at it, here it go: https://github.com/plribeiro3000/blog

Still, i just asked this here, because i thought that someone had tried to do it before. In case not, i will try by myself.


2013/3/27 tamouse mailing lists <tamous...@gmail.com>

--
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.
For more options, visit https://groups.google.com/groups/opt_out.





--
-----------------------------------------------------
Paulo Henrique Lopes Ribeiro
Graduando em Ciência da Computação pela UNIFEI.
Web Developer  na Zertico - Ruby, Ruby on Rails, PHP, HTML, CSS.
Linux - Debian Lenny/Squeeze/Wheezy amd64(XEN) - Centos 5.5 x86_64 

Hassan Schroeder

unread,
Mar 27, 2013, 9:31:28 AM3/27/13
to rubyonra...@googlegroups.com
On Wed, Mar 27, 2013 at 5:44 AM, Paulo Henrique Lopes Ribeiro
<plribe...@gmail.com> wrote:

> Still, i just asked this here, because i thought that someone had tried to
> do it before. In case not, i will try by myself.

Uh, just checking -- you know Rails has a flag to generate a new
app without ActiveRecord, yes?

Have you considered using an alternate ORM, e.g. DataMapper?

--
Hassan Schroeder ------------------------ hassan.s...@gmail.com
http://about.me/hassanschroeder
twitter: @hassan

Paulo Ribeiro

unread,
Mar 27, 2013, 10:04:03 AM3/27/13
to rubyonra...@googlegroups.com
Yes, i have considered it. But before i just want to know if is possible to do this using ActiveRecord. Is it possible to do or not?

Hassan Schroeder

unread,
Mar 27, 2013, 10:36:19 AM3/27/13
to rubyonra...@googlegroups.com
On Wed, Mar 27, 2013 at 7:04 AM, Paulo Ribeiro <plribe...@gmail.com> wrote:

> Yes, i have considered it. But before i just want to know if is possible to
> do this using ActiveRecord. Is it possible to do or not?

Dunno, never had a reason to try :-)

I think the real question is probably more like "Will the amount of
work required to remove or disable functionality from ActiveRecord
be worth it in the long run?" and only you can answer that.

Good luck,

Paulo Ribeiro

unread,
Mar 27, 2013, 10:50:04 AM3/27/13
to rubyonra...@googlegroups.com
Well, i would like to test it anyway. I think that if it could be done, it will worth. Im asking here exactly to not loose time on something that can't be done. =p
Anybody that have a more deep knowledge on this topic can answer me?
Reply all
Reply to author
Forward
0 new messages