2011-03-04 139 views
0

我上傳到生產我的頁面。在本地主機中,頁面運行正常,但在生產中會在儀表板索引中產生此錯誤。生產中分頁問題

客運錯誤

Processing DashboardController#index (for 190.19.21.199 at 2011-03-04 06:00:27) [GET] 
    Parameters: {"action"=>"index", "controller"=>"dashboard"} 

NoMethodError (undefined method `to_i' for {:page=>nil}:Hash): 
    searchlogic (2.4.19) lib/searchlogic/active_record/association_proxy.rb:14:in `send' 
    app/controllers/dashboard_controller.rb:6:in `index' 
    passenger (3.0.0) lib/phusion_passenger/rack/request_handler.rb:96:in `process_request' 
    passenger (3.0.0) lib/phusion_passenger/abstract_request_handler.rb:513:in `accept_and_process_next_request' 
    passenger (3.0.0) lib/phusion_passenger/abstract_request_handler.rb:274:in `main_loop' 
    passenger (3.0.0) lib/phusion_passenger/classic_rails/application_spawner.rb:321:in `start_request_handler' 
    passenger (3.0.0) lib/phusion_passenger/classic_rails/application_spawner.rb:275:in `send' 
    passenger (3.0.0) lib/phusion_passenger/classic_rails/application_spawner.rb:275:in `handle_spawn_application' 
    passenger (3.0.0) lib/phusion_passenger/utils.rb:479:in `safe_fork' 
    passenger (3.0.0) lib/phusion_passenger/classic_rails/application_spawner.rb:270:in `handle_spawn_application' 
    passenger (3.0.0) lib/phusion_passenger/abstract_server.rb:357:in `__send__' 
    passenger (3.0.0) lib/phusion_passenger/abstract_server.rb:357:in `server_main_loop' 
    passenger (3.0.0) lib/phusion_passenger/abstract_server.rb:206:in `start_synchronously' 
    passenger (3.0.0) lib/phusion_passenger/abstract_server.rb:180:in `start' 
    passenger (3.0.0) lib/phusion_passenger/classic_rails/application_spawner.rb:149:in `start' 
    passenger (3.0.0) lib/phusion_passenger/spawn_manager.rb:219:in `spawn_rails_application' 
    passenger (3.0.0) lib/phusion_passenger/abstract_server_collection.rb:132:in `lookup_or_add' 
    passenger (3.0.0) lib/phusion_passenger/spawn_manager.rb:214:in `spawn_rails_application' 
    passenger (3.0.0) lib/phusion_passenger/abstract_server_collection.rb:82:in `synchronize' 
    passenger (3.0.0) lib/phusion_passenger/abstract_server_collection.rb:79:in `synchronize' 
    passenger (3.0.0) lib/phusion_passenger/spawn_manager.rb:213:in `spawn_rails_application' 
    passenger (3.0.0) lib/phusion_passenger/spawn_manager.rb:132:in `spawn_application' 
    passenger (3.0.0) lib/phusion_passenger/spawn_manager.rb:275:in `handle_spawn_application' 
    passenger (3.0.0) lib/phusion_passenger/abstract_server.rb:357:in `__send__' 
    passenger (3.0.0) lib/phusion_passenger/abstract_server.rb:357:in `server_main_loop' 
    passenger (3.0.0) lib/phusion_passenger/abstract_server.rb:206:in `start_synchronously' 
    passenger (3.0.0) helper-scripts/passenger-spawn-server:99 

儀表板指數視圖

<% content_for :header do -%> 
    <% unless current_user.nil? %> 
     Mi Cuenta 
    <% else %> 
     Ingrese al sistema 
    <% end %> 
<% end -%> 

<% unless current_user.nil? %> 
    <% unless @movements.blank? %> 
     <h2>Balance</h2> 
     <%= get_total_balance(current_user) %> 

     <h2>Ultimos movimientos</h2> 
     <table> 
      <th>Fecha</th> 
      <th>Debite</th> 
      <th>Acredite</th> 
      <th>Total</th> 
      <% @movements.each do |m| %> 
       <tr> 
       <td><%= m.date.to_date %></td> 
       <td><%= m.debit %></td> 
       <td><%= m.credit %></td> 
       <td><%= m.balance %></td> 
       </tr> 
      <% end %> 
     </table> 
     <%= will_paginate @movements %> 
    <% else %> 
     No hay movimientos para mostrar 
    <% end %> 
<% else %> 
    <div style="width: 40%; margin: 0 auto;"> 
     <%= render :partial => 'sessions/new' %> 
    </div> 
<% end %> 

指數控制器

def index 
    @movements = current_user.person.saving.movements.paginate :page => params[:page] || 1 unless current_user.nil? || current_user.person.saving.movements.blank? 
end 

但是我使用分頁與將通過頁面分頁。此分頁運行正常,但在儀表板索引中沒有。我看了一次這個頁面。但是我試圖再次進入。產生這個錯誤。

感謝諮詢

+0

你可以在你的Dashboard控制器中發佈'index'方法的內容嗎? – 2011-03-04 14:42:36

+0

@dmarkow現在好了我編輯帖子 – maxiperez 2011-03-04 15:02:39

回答

1

使用此在動作:

@movements = current_user.person.saving.movements.paginate :page => params[:page] if current_user.present? 
@movements = [] if current_user.blank? 

因爲你是無論如何檢查CURRENT_USER的視圖中的存在,你或許可以擺脫@movements = [] if current_user.blank?

這在您的視圖:

<% if @movements.length > 0 %> 
    <h2>Balance</h2> 
    <%= get_total_balance(current_user) %> 

    <h2>Ultimos movimientos</h2> 
    <table> 
     <th>Fecha</th> 
     <th>Debite</th> 
     <th>Acredite</th> 
     <th>Total</th> 
     <% @movements.each do |m| %> 
      <tr> 
      <td><%= m.date.to_date %></td> 
      <td><%= m.debit %></td> 
      <td><%= m.credit %></td> 
      <td><%= m.balance %></td> 
      </tr> 
     <% end %> 
    </table> 
    <%= will_paginate @movements %> 
<% else %> 
    No hay movimientos para mostrar 
<% end %> 

是如何運作的?

+0

稍後再對付我嘗試你的解決方案。現在我在其他項目中工作。非常感謝你。 – maxiperez 2011-03-04 17:10:37

+0

此解決方案不起作用。我不知道爲什麼這個錯誤 – maxiperez 2011-03-04 17:56:28