On Sun, Jul 12, 2009 at 11:28 AM, Frederick Cheung <
[email protected]> wrote:

>
>
>
> On Jul 12, 7:15 pm, Eric <[email protected]> wrote:
> > On Jul 12, 10:19 am, "Älphä Blüë" <[email protected]>
> > wrote:
> >
> > > > But the variable is unnecessary, and in fact, a more concise way of
> > > > saying the same thing would be
> >
> > > > if Model.find(:all).empty?
> >
> > > Agreed.  I was just showing that there are more ways of doing things.
>  I
> > > use your approach...
> >
> > > .empty?
> > > .nil?
> >
> > > .. two things I use heavily in my projects...
> >
> > Typically I use something like 'unless Model.first', but are any of
> > these techniques particularly lighter/faster on the db than others?
> >
>
> It won't make much difference if you expect your table to genuinely
> only contain either 0 rows or a very small number of rows. If it might
> contain 10s or hundreds or rows it will be way faster to check
> Model.first than it would be to check Model.all.empty? (since you'd be
> loading instantiating all hundred objects rather than just 1)
>
> Fred


I agree with Fred's approach because if you're testing for emptiness, you
should do the least amount of work to determine it.  For example,

Model.first  =>  will create 1 or no objects
Model.all    =>  will create table size of N or no objects

Good luck,

-Conrad


>
> > -eric
> >
>

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Talk" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-talk?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to