【发布时间】:2015-12-27 08:39:48
【问题描述】:
我正在开发一个 Rails 应用程序,它可以为将呈现在页面上的单个查询包含 20-30k 条记录。感谢您对此查询的一些反馈!
控制器
def index
if params[:advertiser].blank?
@products = Product.all
else
@advertiser_name = Advertiser.find_by(name: params[:advertiser]).name
@products = Product.where(advertiser: @advertiser_name)
end
end
Product 对象包含所有记录,可以通过广告商名称查找。
观点
<div class="product-listing">
<ul>
<% @products.each do |p| %>
<li id="name">Product Name: <%= p.product_name %></li>
<li id="advertiser">Advertiser: <%= p.advertiser %></li>
<li id="designer">Designer: <%= p.designer %></li>
<li id="price">Price: <%= p.price %></li>
<li id="commission">Commission: <%= p.commission %></li>
<li id="url">Url: <%= p.product_url %></li>
<hr>
<% end %>
</ul>
</div>
当前加载时间
Completed 200 OK in 35531ms (Views: 31808.9ms | ActiveRecord: 3689.6ms)
向你们展示我的架构可能会有所帮助。
ActiveRecord::Schema.define(version: 20151227085753) do
create_table "advertisers", force: :cascade do |t|
t.string "name"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
create_table "products", force: :cascade do |t|
t.string "product_id"
t.string "product_name"
t.string "product_url"
t.string "advertiser"
t.string "designer"
t.string "price"
t.string "commission"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
add_index "products", ["advertiser"], name: "index_products_on_advertiser"
结束
【问题讨论】:
-
我显然想大大加快速度。
标签: ruby-on-rails postgresql activerecord searchkick