Working with models, efficent queries

i have a model with 35000 entries in the database. I was using a unique
string as the primary key. Right now I am using the order method to
return
the model objects in
order. I’d like to know what is good practice ( efficient ) and how to
return X entries at a time instead of all at once. Right now I’m using
the
index method of a controller along with the order method to return the
entries, and then iterating through them in the view.

class StoreController < ApplicationController
def index
@dicts = Dict.order(:key)
end
end

Store#index

Find me in app/views/store/index.html.erb

<% @dicts.each do |word| %>
<%= word.key %>
<%end %>

I’d also like to know a little more about how conrtrollers work with the
database. Is a new store controller instanced everytime a route is
directed
to it? If so am I continually querying the database for those 35000
entries, or is one instance of the controller generated, and one request
made. I have read some of the rails guides, and read quite a bit of
agile
web dev with rails 4, but haven’t found the answer to my questions. Do
you
think you know a reference you would recommend I read?

You need pagination, visit this 1

On Wed, Dec 11, 2013 at 4:29 AM, Colin W. [email protected]
wrote:

 @dicts = Dict.order(:key)

You received this message because you are subscribed to the Google G.
“Ruby on Rails: Talk” group.
To unsubscribe from this group and stop receiving emails from it, send an
email to [email protected]
To post to this group, send email to [email protected]
To view this discussion on the web visit

https://groups.google.com/d/msgid/rubyonrails-talk/0b1b8461-ca5a-4442-acd4-b32fbfac1bf4%40googlegroups.com

.
For more options, visit https://groups.google.com/groups/opt_out.


greatghoul http://www.g2w.me - Ask and Learn!

On Tuesday, December 10, 2013 8:29:17 PM UTC, Colin W. wrote:

i have a model with 35000 entries in the database. I was using a unique
string as the primary key. Right now I am using the order method to return
the model objects in
order. I’d like to know what is good practice ( efficient ) and how to
return X entries at a time instead of all at once. Right now I’m using the
index method of a controller along with the order method to return the
entries, and then iterating through them in the view.

Typically you load one page of results at a time. kaminari and
will_paginate are 2 popular ways of doing this. Under the hood they are
just setting limit and offset query

I’d also like to know a little more about how conrtrollers work with the
database. Is a new store controller instanced everytime a route is directed
to it? If so am I continually querying the database for those 35000
entries, or is one instance of the controller generated, and one request
made. I have read some of the rails guides, and read quite a bit of agile
web dev with rails 4, but haven’t found the answer to my questions. Do

a new controller is instantiated with each request. so your code hits
the
database for every single page view (which you can easily prove to
yourself
by adding a breakpoint or logger statements to the body of your
controller
method or watching the queries stack up in the log file

Fred

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs