繁体   English   中英

Rails分页不会加载搜索结果第二页的内容

[英]Rails pagination does not load content for second page for search results

我有一种获取搜索结果并显示的方法,它工作正常。 但是,每当我尝试转到第二页时,都会显示有关无内容的错误。

这是我的控制器代码:

class BuyersController < UsersController

def show
end

def search
end

def search_products
    search_name = params[:search][:name]
    search_category = params[:search][:category_id].to_i
    search_location_id = params[:search][:location_id].to_i
    search_highest_bid = params[:search][:highest_bid].to_f
    @matching_products = ProductsUnderBid.search_products_under_bid(name: search_name, category_id: search_category, 
                                                                    location_id: search_location_id, highest_bid: search_highest_bid)
    @matching_products = @matching_products.paginate(page: params[:page], per_page: 1)
end
end

尝试删除per_page:1,因此您必须输入如下代码:

@matching_products = @matching_products.paginate(page: params[:page])

我更改了下面的方法,并成功了! 如您所见,我在search_products方法中将变量类型更改为global,以便可以从show方法访问它。我还必须在app / view / controller_name /文件夹下添加show.html.erb。 希望它能帮助别人。

def show
    @matching_products = ProductsUnderBid.search_products_under_bid(name: $search_name, category_id: $search_category, 
                                                                            location_id: $search_location_id, highest_bid: $search_highest_bid)
    @matching_products = @matching_products.paginate(:page => params[:page],:per_page => 5)
            get_already_placed_bids(@matching_products)
end

def search_products
    $search_name = params[:search][:name]
    $search_category = params[:search][:category_id].to_i
    $search_location_id = params[:search][:location_id].to_i
    $search_highest_bid = params[:search][:highest_bid].to_f
    @matching_products = ProductsUnderBid.search_products_under_bid(name: $search_name, category_id: $search_category, 
                                                                    location_id: $search_location_id, highest_bid: $search_highest_bid)
    @matching_products = @matching_products.paginate(:page => params[:page],:per_page => 5)
    get_already_placed_bids(@matching_products)
end

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM