我正在关注从railscasts修改的高级搜索表单,我想对搜索结果进行分页,但我不知道将代码放在哪里进行分页。
我有一个模特:
mineralisearch.rb
class Mineralisearch < ActiveRecord::Base
attr_accessible :keywords,:keywords1
def segnalazione_mineralis
@segnalazione_mineralis ||= find_segnalazione_mineralis
end
private
def find_segnalazione_mineralis
segnalazione_mineralis = SegnalazioneMinerali.order(:titolo)
segnalazione_mineralis = segnalazione_mineralis.where("titolo like ?", "%#
{keywords}%") if keywords.present?
segnalazione_mineralis
end
end
我有一个控制器 mineralisearches_controller.rb
class MineralisearchesController < ApplicationController
def new
@mineralisearch = Mineralisearch.new
end
def create
@mineralisearch = Mineralisearch.create!(params[:mineralisearch])
redirect_to @mineralisearch
end
def show
@mineralisearch = Mineralisearch.find(params[:id])
end
end
和视图
show.html.erb
<h1>Risultati della ricerca</h1>
<table class="table1">
<tr>
<th>Titolo:</th><br>
<th>Creato il:</th>
<th>Ultima Modifica il:</th>
<th></th>
</tr>
<%= render @mineralisearch.segnalazione_mineralis %>
</table>
用这个部分 _segnalazione_minerali.html.erb
<tr>
<td><%= segnalazione_minerali.titolo %> </td>
<td><%= l(segnalazione_minerali.created_at, format:"%e %B %Y %k:%M:%S") %></td>
<td><%= l(segnalazione_minerali.updated_at, format:"%e %B %Y %k:%M:%S")%></td>
<td><%= link_to 'Mostra', [segnalazione_minerali.user, segnalazione_minerali]%></td>
</tr>
我知道我必须加上一些像
这样的代码 @mineralisearch = Mineralisearch.order("Titolo").page(params[:page]).per_page(10)
控制器中的
和
<%= will_paginate @mineralisearch, :previous_label => 'Prec', :next_label => 'Succ' %>
但是我真的不知道在哪里!我试图将它们放在显示视图和控制器中,但它们不起作用!
感谢大家的帮助
答案 0 :(得分:0)
此代码
@mineralisearch = Mineralisearch.order("Titolo").page(params[:page]).per_page(10)
应该是这样的
@mineralisearch = Mineralisearch.order("Titolo").paginate(:page => params[:page],:per_page => 10)
你可以拥有这个
<%= will_paginate @mineralisearch, :previous_label => 'Prec', :next_label => 'Succ' %>
在show view
。
但 not a normal thing
在pagination
目前你想要的是show view
。我更倾向于在{{1}上加上分页如果您想要这样,那么您必须将受尊敬的控制器代码段移至index view
,并将视图代码段移至index action
文件。