Tôi đã sử dụng will_paginate gem cho trang chỉ mục pagination của test_app của tôi. Nó chỉ hiển thị các phiên đấu giá được liệt kê và tương ứng với từng phiên đấu giá có chức năng Chỉnh sửa, Phá hủy. Phân trang của tôi hoạt động tốt. Tôi có 6 phiên đấu giá trong tổng số được liệt kê theo cách thức bảng và khi tôi đặt per_page = 2, 3 trang ở đó. Nhưng khi tôi chỉnh sửa & Cập nhật phiên đấu giá ở trang 2 hoặc 3, nó chỉ chuyển đến trang đầu tiên sau khi hành động cập nhật. Tôi muốn điều đó để ở trên cùng một trang.Phân trang trong Rails - Luôn chuyển hướng đến trang đầu tiên sau khi chỉnh sửa/cập nhật phần tử thuộc các trang khác
My - Index.html.erb
<h1>Listing auctions</h1>
<table>
<tr>
<th>Name</th>
<th>Category</th>
<th>Item</th>
<th></th>
<th></th>
<th></th>
</tr>
<% @auctions.each do |auction| %>
<tr>
<td><%= auction.name %></td>
<td><%= auction.category %></td>
<td><%= auction.item_id %></td>
<td><%= link_to 'Show', auction %></td>
<td><%= link_to 'Edit', edit_auction_path(auction) %></td>
<td><%= link_to 'Destroy', auction, method: :delete, data: { confirm: 'Are you sure?' } %></td>
</tr>
<% end %>
</table>
<br />
<%= will_paginate @auctions %>
<%= link_to 'New Auction', new_auction_path %>
<%= link_to 'Back to Home', home_path %>
Mẫu My - Auction.rb
class Auction < ActiveRecord::Base
attr_accessible :name, :category, :item_id
self.per_page = 2
end
điều khiển của tôi - auctions_controller.rb
class AuctionsController < ApplicationController
# GET /auctions
# GET /auctions.json
def index
@auctions = Auction.paginate(:page => params[:page])#pagination for Index
#@posts = Post.paginate(:page => params[:page])
respond_to do |format|
format.html # index.html.erb
format.json { render json: @auctions }
end
end
# GET /auctions/1
# GET /auctions/1.json
def show
@auction = Auction.find(params[:id])
respond_to do |format|
format.html # show.html.erb
format.json { render json: @auction }
end
end
# GET /auctions/new
# GET /auctions/new.json
def new
@auction = Auction.new
respond_to do |format|
format.html # new.html.erb
format.json { render json: @auction }
end
end
# GET /auctions/1/edit
def edit
@auction = Auction.find(params[:id])
end
# POST /auctions
# POST /auctions.json
def create
@auction = Auction.new(params[:auction])
respond_to do |format|
if @auction.save
format.html { redirect_to @auction, notice: 'Auction was successfully created.' }
format.json { render json: @auction, status: :created, location: @auction }
else
format.html { render action: "new" }
format.json { render json: @auction.errors, status: :unprocessable_entity }
end
end
end
# PUT /auctions/1
# PUT /auctions/1.json
def update
@auction = Auction.find(params[:id])
respond_to do |format|
if @auction.update_attributes(params[:auction])
format.html { redirect_to @auction, notice: 'Auction was successfully updated.' }
format.json { head :no_content }
else
format.html { render action: "edit" }
format.json { render json: @auction.errors, status: :unprocessable_entity }
end
end
end
# DELETE /auctions/1
# DELETE /auctions/1.json
def destroy
@auction = Auction.find(params[:id])
@auction.destroy
respond_to do |format|
format.html { redirect_to auctions_url }
format.json { head :no_content }
end
end
end
Vui lòng đề xuất giải pháp. Cảm ơn bạn.
Không đặt lệnh khẩn cấp vào tên sách – simonmorley