Forum: Ruby on Rails How to create a simple loop counter

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
John M. (Guest)
on 2009-03-17 17:05
Hi all,

     as you may have gathered I am a newbie to rails and programming. I
want to count the number of enquiries in the database and produce it as
a number in the view preferably in the index page. All I want is the
number of items in the database and everytime ones added or deleted the
number will go up or down.

Something like this:

Enquries Today: 'whatever the number of them are'


Thank you clever people!!!!

Your help you been greatly appreciated
(Guest)
on 2009-03-17 17:27
(Received via mailing list)
On 17 Mar., 16:05, Nish P. <removed_email_address@domain.invalid>
wrote:
> Enquries Today: 'whatever the number of them are'
>
> Thank you clever people!!!!

Assuming the name of your model is Item, you can do it this way:

Enquries Today: <%= Item.count %>

Just replace "Item" with whatever your model is called. #count is a
method provided by ActiveRecord, that will return the number of
records in the table that the table belongs to, "items" for example.

--
Cheers,
David K.
http://twitter.com/rubyguy
(Guest)
on 2009-03-17 17:29
(Received via mailing list)
On 17 Mar., 16:27, "removed_email_address@domain.invalid" 
<removed_email_address@domain.invalid> wrote:
>
> Just replace "Item" with whatever your model is called. #count is a
> method provided by ActiveRecord, that will return the number of
> records in the table that the table belongs to, "items" for example.

* in the model that the table belongs to, "items" for example.
(Guest)
on 2009-03-17 17:30
(Received via mailing list)
On 17 Mar., 16:28, "removed_email_address@domain.invalid" 
<removed_email_address@domain.invalid> wrote:
>
> > > Thank you clever people!!!!
>
> > Assuming the name of your model is Item, you can do it this way:
>
> > Enquries Today: <%= Item.count %>
>
> > Just replace "Item" with whatever your model is called. #count is a
> > method provided by ActiveRecord, that will return the number of
> > records in the table that the table belongs to, "items" for example.
>
> * in the model that the table belongs to, "items" for example.

Argh, in the table that model belongs to, of course. So sorry. :/
John M. (Guest)
on 2009-03-17 17:33
removed_email_address@domain.invalid wrote:
> On 17 Mar., 16:28, "removed_email_address@domain.invalid" 
<removed_email_address@domain.invalid> wrote:
>>
>> > > Thank you clever people!!!!
>>
>> > Assuming the name of your model is Item, you can do it this way:
>>
>> > Enquries Today: <%= Item.count %>
>>
>> > Just replace "Item" with whatever your model is called. #count is a
>> > method provided by ActiveRecord, that will return the number of
>> > records in the table that the table belongs to, "items" for example.
>>
>> * in the model that the table belongs to, "items" for example.
>
> Argh, in the table that model belongs to, of course. So sorry. :/

Hi thankyou for that very quick reply but I getting:

 undefined method `count' for #<Enquiry:0x41698fc>

I am placing this in my index page like this:

Enquries Today: <%= enquiry.count %>

thanks again
(Guest)
on 2009-03-17 17:42
(Received via mailing list)
On 17 Mar., 16:33, Nish P. <removed_email_address@domain.invalid>
wrote:
> >> > method provided by ActiveRecord, that will return the number of
> I am placing this in my index page like this:
>
> Enquries Today: <%= enquiry.count %>

Oh, that's probably because "enquiry" is a local variable. You need to
call the #count _class method_ on your model. So you'll have to do it
like this:

Enquries Today: <%= Enquiry.count %>

Notice, I use a capital E. The #count method is not available on
instances of Enquiry (a specific record in your database), but as a
class method of your model. "Enquiry" in your case.

--
Cheers,
David K.
http://twitter.com/rubyguy
John M. (Guest)
on 2009-03-17 17:45
Thank you for your help, that works fine now!!
This topic is locked and can not be replied to.