Add in the will_paginate gem
edit Gemfile
gem 'activemerchant', '~> 1.31'
gem 'haml', '~> 4.0'
gem 'will_paginate', '~> 3.0'
Load in a few orders
edit script/load_orders.rb
Order.transaction do
(1..100).each do |i|
Order.create(name: "Customer #{i}", address: "#{i} Main Street",
email: "customer-#{i}@example.com", pay_type: "Check")
end
end
rails runner script/load_orders.rb
[deprecated] I18n.enforce_available_locales will default to true in the future. If you really want to skip validation of your locale you can set I18n.enforce_available_locales = false to avoid this message.
Modify the controller to do pagination
edit app/controllers/orders_controller.rb
def index
@orders = Order.paginate page: params[:page], order: 'created_at desc',
per_page: 10
respond_to do |format|
format.html # index.html.erb
format.json { render json: @orders }
end
end
Add some navigational aids
edit app/views/orders/index.html.erb
<h1>Listing orders</h1>
<table>
<tr>
<th>Name</th>
<th>Address</th>
<th>Email</th>
<th>Pay type</th>
<th></th>
<th></th>
<th></th>
</tr>
<% @orders.each do |order| %>
<tr>
<td><%= order.name %></td>
<td><%= order.address %></td>
<td><%= order.email %></td>
<td><%= order.pay_type %></td>
<td><%= link_to 'Show', order %></td>
<td><%= link_to 'Edit', edit_order_path(order) %></td>
<td><%= link_to 'Destroy', order, method: :delete,
data: { confirm: 'Are you sure?' } %></td>
</tr>
<% end %>
</table>
<br />
<%= link_to 'New Order', new_order_path %>
<p><%= will_paginate @orders %></p>
Do a login
get /login
post /login?locale=en
get http://localhost:3000/admin?locale=en
Show the orders
get /orders
Name | Address | Pay type | ||||
---|---|---|---|---|---|---|
Customer 100 | 100 Main Street | customer-100@example.com | Check | Show | Edit | Destroy |
Customer 99 | 99 Main Street | customer-99@example.com | Check | Show | Edit | Destroy |
Customer 98 | 98 Main Street | customer-98@example.com | Check | Show | Edit | Destroy |
Customer 97 | 97 Main Street | customer-97@example.com | Check | Show | Edit | Destroy |
Customer 96 | 96 Main Street | customer-96@example.com | Check | Show | Edit | Destroy |
Customer 95 | 95 Main Street | customer-95@example.com | Check | Show | Edit | Destroy |
Customer 94 | 94 Main Street | customer-94@example.com | Check | Show | Edit | Destroy |
Customer 93 | 93 Main Street | customer-93@example.com | Check | Show | Edit | Destroy |
Customer 92 | 92 Main Street | customer-92@example.com | Check | Show | Edit | Destroy |
Customer 91 | 91 Main Street | customer-91@example.com | Check | Show | Edit | Destroy |