Forum: Rails-ES will_paginate error a partir de la primera pagina

Posted by Javier Marquez (ayanami)
on 2010-02-16 10:36
Perdón por el titulo pero no sabia bien como expresar lo que me sucede.
Tengo instalado will_paginate y funciona bien, el problema es con mi
codigo, hago una secuencia con el codigo:

ELCONTROLLER
class ExpedienteController < ApplicationController
  layout 'standard'

  def list
    persona = Persona.find_by_identificador(params[:i])
    @tipo = Tipo.find_by_id(params[:tipo_id])

    if params[:i] == nil #en la entrada inicial a la pagina
      #@expedientes_filtered = Expediente.find(:all, :conditions =>
{:tipo_id => params[:tipo_id]})
      @expedientes_filtered = Expediente.paginate :page =>
params[:page], :per_page => 2, :conditions => {:tipo_id =>
params[:tipo_id]}
    else
      if persona == nil #cuando no existe o no se pone nada
        #@expedientes_filtered = Expediente.find(:all, :conditions => {
:id => -1})
        @expedientes_filtered = Expediente.paginate :page =>
params[:page], :per_page => 2,:conditions => { :id => -1}
      else
        #@expedientes_filtered = Expediente.find(:all, :conditions =>
["persona_id = ? and tipo_id = ?" , persona.id, params[:tipo_id]])
        @expedientes_filtered = Expediente.paginate :page =>
params[:page], :per_page => 3, :conditions => ["persona_id = ? and
tipo_id = ?" , persona.id, params[:tipo_id]]
      end
    end

    if request.xhr?
      render :partial => "expediente", :layout => false
    end


  end

....

LIST VIEW

<h3>Buscar Expediente de: <%=  @tipo.tipo %> </h3>

<% form_tag do %>  <!--search = method in controller -->
      <label for="item_name">DNI Solicitante : </label>
      <%= text_field_tag(:i, params[:i], :size => 10 ) %>
      <%= submit_tag "Buscar" %>
      <%= hidden_field_tag(:tipo_id, params[:tipo_id], :value =>
@tipo.id) %>


<% end %>

<div id="table"> <%= render :partial => "expediente" %> </div>

<% form_tag :action => 'new' do %>  <!--search = method in controller
-->

      <%= submit_tag "Nuevo expediente" %>
      <%= hidden_field_tag(:tipo_id, params[:tipo_id], :value =>
@tipo.id) %>
<% end %>

..........

PARTIAL VIEW

<table id="rounded-corner">
  <thead>
    <tr>
      <th scope="col" class="rounded-q0"> </th>
      <th scope="col" class="rounded-q1"> </th>
      <th scope="col" class="rounded-q1"> Nº Expediente </th>
      <th scope="col" class="rounded-q1"> Estado </th>
      <th scope="col" class="rounded-q1"> Descripcion </th>
      <th scope="col" class="rounded-q1"> Fecha Solicitud </th>
      <th scope="col" class="rounded-q1"> Fecha Concesión </th>
      <th scope="col" class="rounded-q2"> Solicitante </th>
    </tr>
  </thead>

  <tfoot>
    <tr>
      <th colspan ="8"><%= will_paginate @expedientes_filtered %></th>
    </tr>
  </tfoot>



  <tbody>

    <% @expedientes_filtered.each do |exp| %>
      <tr class="<%= cycle("even","odd") %>">
        <td><small> <%= link_to 'editar', {:action => "show", :id =>
exp.id, :tipo_id => @tipo.id} %></small></td>
        <td><small> <%= link_to 'borrar', {:action => "delete", :id =>
exp.id},
                    :confirm => "¿Esta seguro que quiere borrar este
expediente?" %></small></td>
        <td><%= link_to exp.numero_exp, {:controller => 'historial',
:action => "list", :expediente_id => exp.id, :tipo_id => @tipo.id}
%></td>
        <td><%= exp.estado.estado %></td>
        <td><%= exp.descripcion %></td>
        <td><%= exp.fecha_solicitud %></td>
        <td><%= exp.fecha_concesion %></td>
        <td><%= exp.persona.nombre %></td>
      </tr>
    <% end %>
  </tbody>
</table>

......

Os comento, cuando no filtro por ninguna persona, el will_paginate
funciona bien, y me voy moviendo entre las paginas sin problemas, PERO
si filtro por una persona, la carga inicial funciona y me sale la
primera pagina y el numero de las siguientes, pero al pinchar en alguna
de ellas me dice este error:

 NoMethodError in Expediente#list

Showing app/views/expediente/list.html.erb where line #1 raised:

You have a nil object when you didn't expect it!
The error occurred while evaluating nil.tipo

Extracted source (around line #1):

1: <h3>Buscar Expediente de: <%=  @tipo.tipo %> </h3>
2:
3: <% form_tag do %>  <!--search = method in controller -->
4:       <label for="item_name">DNI Solicitante : </label>

RAILS_ROOT: C:/DATOS/JAVIER/PROFESIONAL/ruby/GdA_RoR
Application Trace | Framework Trace | Full Trace

C:/DATOS/JAVIER/PROFESIONAL/ruby/GdA_RoR/app/views/expediente/list.html.erb:1:in
`_run_erb_app47views47expediente47list46html46erb'
C:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.3.3/lib/action_view/renderable.rb:34:in
`send'
C:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.3.3/lib/action_view/renderable.rb:34:in
`render'
C:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.3.3/lib/action_view/base.rb:301:in
`with_template'
C:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.3.3/lib/action_view/renderable.rb:30:in
`render'
C:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.3.3/lib/action_view/template.rb:199:in
`render_template'
C:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.3.3/lib/action_view/base.rb:260:in
`render'
C:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.3.3/lib/action_view/base.rb:343:in
`_render_with_layout'
C:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.3.3/lib/action_view/base.rb:257:in
`render'
C:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.3.3/lib/action_controller/base.rb:1246:in
`render_for_file'
C:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.3.3/lib/action_controller/base.rb:941:in
`render_without_benchmark'
C:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.3.3/lib/action_controller/benchmarking.rb:51:in
`render'
C:/ruby/lib/ruby/gems/1.8/gems/activesupport-2.3.3/lib/active_support/core_ext/benchmark.rb:17:in
`ms'
C:/ruby/lib/ruby/gems/1.8/gems/activesupport-2.3.3/lib/active_support/core_ext/benchmark.rb:10:in
`realtime'
C:/ruby/lib/ruby/gems/1.8/gems/activesupport-2.3.3/lib/active_support/core_ext/benchmark.rb:17:in
`ms'
C:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.3.3/lib/action_controller/benchmarking.rb:51:in
`render'
C:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.3.3/lib/action_controller/base.rb:1322:in
`default_render'
C:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.3.3/lib/action_controller/base.rb:1328:in
`perform_action_without_filters'
C:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.3.3/lib/action_controller/filters.rb:617:in
`call_filters'
C:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.3.3/lib/action_controller/filters.rb:610:in
`perform_action_without_benchmark'
C:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.3.3/lib/action_controller/benchmarking.rb:68:in
`perform_action_without_rescue'
C:/ruby/lib/ruby/gems/1.8/gems/activesupport-2.3.3/lib/active_support/core_ext/benchmark.rb:17:in
`ms'
C:/ruby/lib/ruby/gems/1.8/gems/activesupport-2.3.3/lib/active_support/core_ext/benchmark.rb:10:in
`realtime'
C:/ruby/lib/ruby/gems/1.8/gems/activesupport-2.3.3/lib/active_support/core_ext/benchmark.rb:17:in
`ms'
C:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.3.3/lib/action_controller/benchmarking.rb:68:in
`perform_action_without_rescue'
C:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.3.3/lib/action_controller/rescue.rb:160:in
`perform_action_without_flash'
C:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.3.3/lib/action_controller/flash.rb:146:in
`perform_action'
C:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.3.3/lib/action_controller/base.rb:527:in
`send'
C:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.3.3/lib/action_controller/base.rb:527:in
`process_without_filters'
C:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.3.3/lib/action_controller/filters.rb:606:in
`process'
C:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.3.3/lib/action_controller/base.rb:391:in
`process'
C:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.3.3/lib/action_controller/base.rb:386:in
`call'
C:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.3.3/lib/action_controller/routing/route_set.rb:434:in
`call'
C:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.3.3/lib/action_controller/dispatcher.rb:88:in
`dispatch'
C:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.3.3/lib/action_controller/dispatcher.rb:111:in
`_call'
C:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.3.3/lib/action_controller/dispatcher.rb:82:in
`initialize'
C:/ruby/lib/ruby/gems/1.8/gems/activerecord-2.3.3/lib/active_record/query_cache.rb:29:in
`call'
C:/ruby/lib/ruby/gems/1.8/gems/activerecord-2.3.3/lib/active_record/query_cache.rb:29:in
`call'
C:/ruby/lib/ruby/gems/1.8/gems/activerecord-2.3.3/lib/active_record/connection_adapters/abstract/query_cache.rb:34:in
`cache'
C:/ruby/lib/ruby/gems/1.8/gems/activerecord-2.3.3/lib/active_record/query_cache.rb:9:in
`cache'
C:/ruby/lib/ruby/gems/1.8/gems/activerecord-2.3.3/lib/active_record/query_cache.rb:28:in
`call'
C:/ruby/lib/ruby/gems/1.8/gems/activerecord-2.3.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:361:in
`call'
C:/ruby/lib/ruby/gems/1.8/gems/rack-1.0.0/lib/rack/head.rb:9:in `call'
C:/ruby/lib/ruby/gems/1.8/gems/rack-1.0.0/lib/rack/methodoverride.rb:24:in
`call'
C:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.3.3/lib/action_controller/params_parser.rb:15:in
`call'
C:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.3.3/lib/action_controller/session/cookie_store.rb:93:in
`call'
C:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.3.3/lib/action_controller/reloader.rb:29:in
`call'
C:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.3.3/lib/action_controller/failsafe.rb:26:in
`call'
C:/ruby/lib/ruby/gems/1.8/gems/rack-1.0.0/lib/rack/lock.rb:11:in `call'
C:/ruby/lib/ruby/gems/1.8/gems/rack-1.0.0/lib/rack/lock.rb:11:in
`synchronize'
C:/ruby/lib/ruby/gems/1.8/gems/rack-1.0.0/lib/rack/lock.rb:11:in `call'
C:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.3.3/lib/action_controller/dispatcher.rb:106:in
`call'
C:/ruby/lib/ruby/gems/1.8/gems/rails-2.3.3/lib/rails/rack/static.rb:31:in
`call'
C:/ruby/lib/ruby/gems/1.8/gems/rack-1.0.0/lib/rack/urlmap.rb:46:in
`call'
C:/ruby/lib/ruby/gems/1.8/gems/rack-1.0.0/lib/rack/urlmap.rb:40:in
`each'
C:/ruby/lib/ruby/gems/1.8/gems/rack-1.0.0/lib/rack/urlmap.rb:40:in
`call'
C:/ruby/lib/ruby/gems/1.8/gems/rails-2.3.3/lib/rails/rack/log_tailer.rb:17:in
`call'
C:/ruby/lib/ruby/gems/1.8/gems/rack-1.0.0/lib/rack/content_length.rb:13:in
`call'
C:/ruby/lib/ruby/gems/1.8/gems/rack-1.0.0/lib/rack/chunked.rb:15:in
`call'
C:/ruby/lib/ruby/gems/1.8/gems/rack-1.0.0/lib/rack/handler/mongrel.rb:61:in
`process'
C:/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.5-x86-mswin32-60/lib/mongrel.rb:159:in
`process_client'
C:/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.5-x86-mswin32-60/lib/mongrel.rb:158:in
`each'
C:/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.5-x86-mswin32-60/lib/mongrel.rb:158:in
`process_client'
C:/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.5-x86-mswin32-60/lib/mongrel.rb:285:in
`run'
C:/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.5-x86-mswin32-60/lib/mongrel.rb:285:in
`initialize'
C:/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.5-x86-mswin32-60/lib/mongrel.rb:285:in
`new'
C:/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.5-x86-mswin32-60/lib/mongrel.rb:285:in
`run'
C:/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.5-x86-mswin32-60/lib/mongrel.rb:268:in
`initialize'
C:/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.5-x86-mswin32-60/lib/mongrel.rb:268:in
`new'
C:/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.5-x86-mswin32-60/lib/mongrel.rb:268:in
`run'
C:/ruby/lib/ruby/gems/1.8/gems/rack-1.0.0/lib/rack/handler/mongrel.rb:34:in
`run'
C:/ruby/lib/ruby/gems/1.8/gems/rails-2.3.3/lib/commands/server.rb:111
C:/ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in
`gem_original_require'
C:/ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in
`require'
script/server:3

C:/DATOS/JAVIER/PROFESIONAL/ruby/GdA_RoR/app/views/expediente/list.html.erb:1:in
`_run_erb_app47views47expediente47list46html46erb'
C:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.3.3/lib/action_view/renderable.rb:34:in
`send'
C:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.3.3/lib/action_view/renderable.rb:34:in
`render'
C:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.3.3/lib/action_view/base.rb:301:in
`with_template'
C:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.3.3/lib/action_view/renderable.rb:30:in
`render'
C:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.3.3/lib/action_view/template.rb:199:in
`render_template'
C:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.3.3/lib/action_view/base.rb:260:in
`render'
C:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.3.3/lib/action_view/base.rb:343:in
`_render_with_layout'
C:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.3.3/lib/action_view/base.rb:257:in
`render'
C:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.3.3/lib/action_controller/base.rb:1246:in
`render_for_file'
C:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.3.3/lib/action_controller/base.rb:941:in
`render_without_benchmark'
C:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.3.3/lib/action_controller/benchmarking.rb:51:in
`render'
C:/ruby/lib/ruby/gems/1.8/gems/activesupport-2.3.3/lib/active_support/core_ext/benchmark.rb:17:in
`ms'
C:/ruby/lib/ruby/gems/1.8/gems/activesupport-2.3.3/lib/active_support/core_ext/benchmark.rb:10:in
`realtime'
C:/ruby/lib/ruby/gems/1.8/gems/activesupport-2.3.3/lib/active_support/core_ext/benchmark.rb:17:in
`ms'
C:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.3.3/lib/action_controller/benchmarking.rb:51:in
`render'
C:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.3.3/lib/action_controller/base.rb:1322:in
`default_render'
C:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.3.3/lib/action_controller/base.rb:1328:in
`perform_action_without_filters'
C:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.3.3/lib/action_controller/filters.rb:617:in
`call_filters'
C:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.3.3/lib/action_controller/filters.rb:610:in
`perform_action_without_benchmark'
C:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.3.3/lib/action_controller/benchmarking.rb:68:in
`perform_action_without_rescue'
C:/ruby/lib/ruby/gems/1.8/gems/activesupport-2.3.3/lib/active_support/core_ext/benchmark.rb:17:in
`ms'
C:/ruby/lib/ruby/gems/1.8/gems/activesupport-2.3.3/lib/active_support/core_ext/benchmark.rb:10:in
`realtime'
C:/ruby/lib/ruby/gems/1.8/gems/activesupport-2.3.3/lib/active_support/core_ext/benchmark.rb:17:in
`ms'
C:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.3.3/lib/action_controller/benchmarking.rb:68:in
`perform_action_without_rescue'
C:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.3.3/lib/action_controller/rescue.rb:160:in
`perform_action_without_flash'
C:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.3.3/lib/action_controller/flash.rb:146:in
`perform_action'
C:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.3.3/lib/action_controller/base.rb:527:in
`send'
C:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.3.3/lib/action_controller/base.rb:527:in
`process_without_filters'
C:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.3.3/lib/action_controller/filters.rb:606:in
`process'
C:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.3.3/lib/action_controller/base.rb:391:in
`process'
C:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.3.3/lib/action_controller/base.rb:386:in
`call'
C:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.3.3/lib/action_controller/routing/route_set.rb:434:in
`call'
C:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.3.3/lib/action_controller/dispatcher.rb:88:in
`dispatch'
C:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.3.3/lib/action_controller/dispatcher.rb:111:in
`_call'
C:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.3.3/lib/action_controller/dispatcher.rb:82:in
`initialize'
C:/ruby/lib/ruby/gems/1.8/gems/activerecord-2.3.3/lib/active_record/query_cache.rb:29:in
`call'
C:/ruby/lib/ruby/gems/1.8/gems/activerecord-2.3.3/lib/active_record/query_cache.rb:29:in
`call'
C:/ruby/lib/ruby/gems/1.8/gems/activerecord-2.3.3/lib/active_record/connection_adapters/abstract/query_cache.rb:34:in
`cache'
C:/ruby/lib/ruby/gems/1.8/gems/activerecord-2.3.3/lib/active_record/query_cache.rb:9:in
`cache'
C:/ruby/lib/ruby/gems/1.8/gems/activerecord-2.3.3/lib/active_record/query_cache.rb:28:in
`call'
C:/ruby/lib/ruby/gems/1.8/gems/activerecord-2.3.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:361:in
`call'
C:/ruby/lib/ruby/gems/1.8/gems/rack-1.0.0/lib/rack/head.rb:9:in `call'
C:/ruby/lib/ruby/gems/1.8/gems/rack-1.0.0/lib/rack/methodoverride.rb:24:in
`call'
C:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.3.3/lib/action_controller/params_parser.rb:15:in
`call'
C:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.3.3/lib/action_controller/session/cookie_store.rb:93:in
`call'
C:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.3.3/lib/action_controller/reloader.rb:29:in
`call'
C:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.3.3/lib/action_controller/failsafe.rb:26:in
`call'
C:/ruby/lib/ruby/gems/1.8/gems/rack-1.0.0/lib/rack/lock.rb:11:in `call'
C:/ruby/lib/ruby/gems/1.8/gems/rack-1.0.0/lib/rack/lock.rb:11:in
`synchronize'
C:/ruby/lib/ruby/gems/1.8/gems/rack-1.0.0/lib/rack/lock.rb:11:in `call'
C:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.3.3/lib/action_controller/dispatcher.rb:106:in
`call'
C:/ruby/lib/ruby/gems/1.8/gems/rails-2.3.3/lib/rails/rack/static.rb:31:in
`call'
C:/ruby/lib/ruby/gems/1.8/gems/rack-1.0.0/lib/rack/urlmap.rb:46:in
`call'
C:/ruby/lib/ruby/gems/1.8/gems/rack-1.0.0/lib/rack/urlmap.rb:40:in
`each'
C:/ruby/lib/ruby/gems/1.8/gems/rack-1.0.0/lib/rack/urlmap.rb:40:in
`call'
C:/ruby/lib/ruby/gems/1.8/gems/rails-2.3.3/lib/rails/rack/log_tailer.rb:17:in
`call'
C:/ruby/lib/ruby/gems/1.8/gems/rack-1.0.0/lib/rack/content_length.rb:13:in
`call'
C:/ruby/lib/ruby/gems/1.8/gems/rack-1.0.0/lib/rack/chunked.rb:15:in
`call'
C:/ruby/lib/ruby/gems/1.8/gems/rack-1.0.0/lib/rack/handler/mongrel.rb:61:in
`process'
C:/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.5-x86-mswin32-60/lib/mongrel.rb:159:in
`process_client'
C:/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.5-x86-mswin32-60/lib/mongrel.rb:158:in
`each'
C:/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.5-x86-mswin32-60/lib/mongrel.rb:158:in
`process_client'
C:/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.5-x86-mswin32-60/lib/mongrel.rb:285:in
`run'
C:/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.5-x86-mswin32-60/lib/mongrel.rb:285:in
`initialize'
C:/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.5-x86-mswin32-60/lib/mongrel.rb:285:in
`new'
C:/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.5-x86-mswin32-60/lib/mongrel.rb:285:in
`run'
C:/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.5-x86-mswin32-60/lib/mongrel.rb:268:in
`initialize'
C:/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.5-x86-mswin32-60/lib/mongrel.rb:268:in
`new'
C:/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.5-x86-mswin32-60/lib/mongrel.rb:268:in
`run'
C:/ruby/lib/ruby/gems/1.8/gems/rack-1.0.0/lib/rack/handler/mongrel.rb:34:in
`run'
C:/ruby/lib/ruby/gems/1.8/gems/rails-2.3.3/lib/commands/server.rb:111
C:/ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in
`gem_original_require'
C:/ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in
`require'
script/server:3

Request

Parameters:

{"page"=>"2"}

Show session dump

---

Response

Headers:

{"Content-Type"=>"text/html",
 "Cache-Control"=>"no-cache"}

En definitiva que no encuentra la variable @tipo

Alguna sugerencia por favor!!
Posted by Juan Ripoll (juarinu)
on 2010-02-16 20:28
Javier Marquez wrote:
> Perdón por el titulo pero no sabia bien como expresar lo que me sucede.
> Tengo instalado will_paginate y funciona bien, el problema es con mi
> codigo, hago una secuencia con el codigo:
> 

> …

> 
> Request
> 
> Parameters:
> 
> {"page"=>"2"}
> 
> Show session dump
> 
> ---
> 
> Response
> 
> Headers:
> 
> {"Content-Type"=>"text/html",
>  "Cache-Control"=>"no-cache"}
> 
> En definitiva que no encuentra la variable @tipo
> 
> Alguna sugerencia por favor!!


Una pregunta…

Supongo que en el controlador tienes un método "index" que es al que se 
llaman cuando "no hay filtros"  y todo funciona bien. Luego, cuando 
incorporas el filtro y llamas a "list", es cuando el will_paginate no 
funciona… es correcto?

Y una observación. El error que obtienes es porque cuando se llama al 
método "list" del controlador, no se le envía el parámetro "tipo_id" con 
lo que "@tipo_id" se evalúa a NIL y te falla en la vista cuando se 
intenta evaluar "@tipo.tipo".
Podrías intentar en controlador algo como:

@tipo = (params[:tipo_id].nil? ? <valor_por_defecto> : 
Tipo.find_by_id(params[:tipo_id]) )


Un Saludo…
Posted by Javier Marquez (ayanami)
on 2010-02-17 00:34
Attachment: capturas.pdf (79,2 KB)
Hola Juan, el controller tiene distintas condiciones según los
parametros que le llegan, así cuando hay filtro pasa por el ultimo else
...
else
@expedientes_filtered = Expediente.paginate :page =>
params[:page], :per_page => 3, :conditions => ["persona_id = ? and
tipo_id = ?" , persona.id, params[:tipo_id]]


Lo que intento en la vista list una cabecera donde se puede filtrar y es
el partial la que refresco con los datos, pero se ve que el parametro
donde llevo la variable @tipo no se pasa correctamente.

Adjunto unas capturas donde se ve la aplicación funcionando.
Gracias por tu tiempo.
Posted by Juan Ripoll (juarinu)
on 2010-02-17 23:19
Javier Marquez wrote:
> Hola Juan, el controller tiene distintas condiciones según los
> parametros que le llegan, así cuando hay filtro pasa por el ultimo else
> ...
> else
> @expedientes_filtered = Expediente.paginate :page =>
> params[:page], :per_page => 3, :conditions => ["persona_id = ? and
> tipo_id = ?" , persona.id, params[:tipo_id]]
> 
> 
> Lo que intento en la vista list una cabecera donde se puede filtrar y es
> el partial la que refresco con los datos, pero se ve que el parametro
> donde llevo la variable @tipo no se pasa correctamente.
> 
> Adjunto unas capturas donde se ve la aplicación funcionando.
> Gracias por tu tiempo.

No hay de que Javier.

Por lo que he visto en los pantallazos, parece que después del primer 
filtrado, cuando pones el DNI, pierdes el parámetro tipo_id en la URL y 
esto es lo que luego provoca el fallo… puede ser???

Un Saludo...
Posted by Javier Marquez (ayanami)
on 2010-02-18 00:21
Es totalmente correcto.

La primera vez funciona porque paso el parametro tipo_id, pero despues 
form_tag llama otra vez a list del controller, y ese a su vez sola a la 
partial. En fin, cuando no tengo will_paginate funciona porque ya tengo 
los expedientes que quiero mostrar, pero parece que al moverme de 
pagina, will_paginate refresca toda la view y ya no existe el parametro 
tipo_id.

Podria ser una solución pasar en el form_tag como parametro de la acción 
list el valor "tipo_id", eso como se puede hacer??

Thanks a lot.
Posted by Carlos Timoteo (kurko)
on 2010-02-19 15:42
Hola prueba haciendo esto:


<%= will_paginate @expedientes_filtered, params => {:tipo_id => 'tu 
variable'} %>
Posted by Carlos Timoteo (kurko)
on 2010-02-19 15:46
Carlos Timoteo wrote:
 Hola prueba haciendo esto:


<%= will_paginate @expedientes_filtered, params => {:tipo_id => 
@tipo.id} %>

Disculpa no se como editar el post pero asi deberia ser segun como lo 
tienes en tu controller y view...

espero que te funcione...
Saludos
Posted by Javier Marquez (ayanami)
on 2010-02-19 17:30
Gracias Carlos, lo he probado "con gran emoción" pero sigue apareciendo 
el mismo error. De todas formas, voy aprendiendo con vuestras 
aportaciones.

Creo que al final quitaré la vista partial y haré siempre llamadas como 
la incial cuando entro por primera vez que parece que funciona.

Muchas gracias de nuevo.
Posted by Carlos Timoteo (kurko)
on 2010-02-20 05:48
Javier Marquez wrote:
> Gracias Carlos, lo he probado "con gran emoción" pero sigue apareciendo 
> el mismo error. De todas formas, voy aprendiendo con vuestras 
> aportaciones.
> 
> Creo que al final quitaré la vista partial y haré siempre llamadas como 
> la incial cuando entro por primera vez que parece que funciona.
> 
> Muchas gracias de nuevo.

OK pero quieres paginar con javascript... que solo actualice el 
partial???
Posted by Javier Marquez (ayanami)
on 2010-02-20 12:09
Hola pues. No sé exactamente que me quieres decir. Mi idea es que el 
will_paginate solamente me paginara el "partial", así creo que lo tenia 
antes de paginar, no tengo tadavia mucha idea de como realmente 
funciona.
Gracias
Please log in before posting. Registration is free and takes only a minute.
Existing account (Switch to SSL-encrypted connection)
NEW: Do you have a Google/GoogleMail or Yahoo account? No registration required!
Log in with Google account | Log in with Yahoo account
No account? Register here.