Ruby on rails rails 3中通用搜索的分页

Ruby on rails rails 3中通用搜索的分页,ruby-on-rails,ruby,Ruby On Rails,Ruby,我的数据库里有一百万条记录。我想用正则表达式实现一个通用搜索框,结果应该每页显示50个。我想实现分页 class TweetsController<ApplicationController def query @tweets =Tweets.where("%query%=?", params[:search]).all end end <%= form_tag({controller: "tweets", action:"query" }, method: "get

我的数据库里有一百万条记录。我想用正则表达式实现一个通用搜索框,结果应该每页显示50个。我想实现分页

class TweetsController<ApplicationController
  def query
    @tweets =Tweets.where("%query%=?", params[:search]).all
  end
end
<%= form_tag({controller: "tweets", action:"query" }, method: "get") do  %>
<%= label_tag(:search, "search for:") %>
<%= text_field_tag(:search) %>
<%= submit_tag("Search") %>
<% end %>
classtweetscontroller您可以使用gem

为此,您首先添加

gem 'will_paginate'
到您的
Gemfile
,然后运行
bundle
。完成后,输入控制器:

class TweetsController < ApplicationController
  def query
    @tweets = Tweets.where("%query%=?", params[:search]).paginate(
      page: params[:page], per_page: 50)
  end
end
class TweetsController
在你看来:

<%= will_paginate @tweets %>


显示页面链接

另一个好的选择是使用Gem

您只需根据需要配置每页的默认设置即可。请阅读

在视图中,只需使用

 <%= paginate @tweets %>

TweetsController说,我认为您的Tweet模型符合您的控制器

对will_paginate()使用分页

在控制器中的变化有点像

class TweetsController < ApplicationController
  def query

    @tweets = Tweet.where("field LIKE ?", "%#{params[:search]}%" ).paginate(
      page: params[:page], per_page: 50)
  end
end
class TweetsController
在视图中

<%= will_paginate @tweets %>


使用kaminari。这是个不错的选择。看看我的答案。它可能会帮助你。thks每一个它工作良好,但它没有显示一列称为“tweet_text”,其中包含搜索词,我的输出应该显示该列的全文,但它没有显示。任何人都可以帮助我。我尝试通过sql查找,但与paginate组合使用时无法工作。请在dis中帮助我。请提前帮我处理dis。它工作正常,但不显示全文,而全文是包含查询词的列之一。我的输出应该显示该列的全文。例如,如果我输入“sheep”,它将显示表中所有匹配的列,并在tweet_文本列中显示全文,但这不会发生。请帮助我。Iam坚持使用disthks每一个都很好,但它没有显示一个名为“tweet_text”的列,该列包含搜索词,我的输出应该显示该列的全文,但它没有显示。任何人都可以帮助我。我尝试通过sql查找,但与paginate组合使用时无法工作。请在dis中帮助我。我没有得到你的帮助。请发布有问题的推特模型。
<%= will_paginate @tweets %>