i dealing with this code, but i always getting more than 10 seconds to load, i even upgraded the server, but is the same.... i know i have some database design problem, but i cant modify that.
i am showing all the prices from differents locations of products of a category also in different time range, because the prices change every 15 days in each location.
# controller
def prods_x_cat # This will load all the products of a category @products = Product.prods_x_cat(params[:id],:include => :raw_datas) @cortes = RawData.cortes respond_to do |format| format.js { render :layout=>false} end end
# prods_x_cat.js.erb
var jqxhr1 = $.ajax($("#loading_overlay .loading_message, #loading_overlay").fadeIn()); $('#datos').html("<%= escape_javascript render :partial=>'/shared/prods_x_cat'%>")
# view
<%@cortes.each do |c|%> <a href="#<%=c.corte%>" class="round_top"><%=c.corte%></a> <%end%> <%@cortes.each do |c|%> <%@fecha = c.corte_real%> <div id="<%=c.corte%>" class="block no_padding"> <table class="display datatable"> <thead> <tr> <th>SKU</th> <%Company.active.order('table_field ASC').each do |c|%> <th><%=c.abbr%></th> <%end%> <th>Average</th> <th>Mode</th> <th>Minimum</th> <th>Maximum</th> </tr> </thead> <tbody> <%@products.each do |p|%> <tr class="gradeA"> <td><%=p.name%></td> <%p.raw_datas.where("product_id='#{p.id}' and corte_real='#{@fecha}'").each do |prd|%> <td><%=prd.location1.to_f.round(2)%></td> <td><%=prd.location2.to_f.round(2)%></td> <td><%=prd.location3.to_f.round(2)%></td> <td><%=prd.location4.to_f.round(2)%></td> <td><%=prd.location5.to_f.round(2)%></td> <td><%=prd.location6.to_f.round(2)%></td> <td><%=prd.location7.to_f.round(2)%></td> <td><%=prd.location8.to_f.round(2)%></td> <td><%=prd.promedio.to_f.round(2)%></td> <td><%=prd.moda%></td> <td><%=prd.minimo.to_f.round(2)%></td> <td><%=prd.maximo.to_f.round(2)%></td> <%end%> </tr> <%end%> </tbody> </table> </div> <%end%> </div>
i know it should be something with the query, still don't know