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?
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