使用 will_paginate 进行分页和简单查询
在命令行下使用 gem install will_paginate 命令,出现下面结果安装成功
打开 books_controller.rb (你自己的控制器)
注释掉查找全部的方法,使用下面的方法,已经集成根据title进行查询
- #@books = Book.all
- @books = Book.paginate :page => params[:page],
- :per_page => 2,
- :conditions => ["title like ?", "%#{params[:search]}%"]
- respond_to do |format|
- format.html # index.html.erb
- format.xml { render :xml => @books }
- end
- end
#@books = Book.all
@books = Book.paginate :page => params[:page],
:per_page => 2,
:conditions => ["title like ?", "%#{params[:search]}%"]
respond_to do |format|
format.html # index.html.erb
format.xml { render :xml => @books }
end
end
打开对应的 books_controller.rb 视图页面 index.html.erb
添加查询功能
- <% form_tag books_path, :method => 'get' do %>
- <p>
- <%= text_field_tag :search, params[:search] %>
- <%= submit_tag "Search", :name => nil %>
- </p>
- <% end %>
<% form_tag books_path, :method => 'get' do %>
<p>
<%= text_field_tag :search, params[:search] %>
<%= submit_tag "Search", :name => nil %>
</p>
<% end %>
及分页功能
- <div>
- <div >
- <%= page_entries_info @books %>
- </div>
- <%= will_paginate @books, :container => false %>
- </div>
<div>
<div >
<%= page_entries_info @books %>
</div>
<%= will_paginate @books, :container => false %>
</div>
打开环境文件 environment.rb 在end后添加
- require "will_paginate"
require "will_paginate"
运行效果如下
本文转自:http://95700900.javaeye.com/blog/573308