2012-06-24 93 views
2

我正在將ruby 1.9.3中的rails應用程序從2.3.5升級到3.2.5。在舊的應用程序中,我使用了will_paginate插件,該插件已轉換爲gem。Rails 3升級will_pagination錯誤的參數數量(2爲1)

現在升級後,我收到以下錯誤: 錯誤的參數數目(2 1)

從應用程序跟蹤幾行: 應用程序跟蹤|框架跟蹤|全軌跡

will_paginate (3.0.3) lib/will_paginate/active_record.rb:124:in `paginate' 
app/models/activity.rb:28:in `dashboard_activities' 
app/controllers/dashboard_controller.rb:10:in `index' 
actionpack (3.2.5) lib/action_controller/metal/implicit_render.rb:4:in `send_action' 
actionpack (3.2.5) l 

我相信問題是在我使用分頁的活動模型中的舊代碼。誰能幫忙?

代碼:

def dashboard_activities(page, total_records, date_range1 = nil, date_range2 = nil) 
    unless date_range2.nil? 
    x =[ "is_delete = false AND status = 'open' AND date(due_date) between ? and ?", date_range1, date_range2] 
    else 
    x =[ "is_delete = false AND status = 'open' AND date(due_date) = ? ", date_range1] 
    end  
    paginate(:all, 
    :page =>page, 
    :per_page =>total_records, 
    :conditions => x, 
    :order =>"due_date asc") 
end 

回答

2

錯誤消息說,這一切:

的PAGINATE方法只期待一個說法,那就是選擇哈希值。 如果你忽略了:所有參數都會正常工作。

在創業板上市的版本> = 3.0,你可以撥打短頁面,方法是這樣的:

paginate(page: page, per_page: total_records, conditions: x, order: "due_date asc") 

看到will_paginate wiki進一步的細節。

+0

嗨,感謝您的建議。現在我得到這個錯誤 NameError(未定義的局部變量或方法'頁'爲#): – user1452541

+0

然後,也許你再次用完整的方法名稱「paginate」來嘗試它。這確實有用! –

+0

是的,它可以和Paginate一起工作,但不會讓(:all)破壞正在查看的代碼的其他部分 - 文件 – user1452541

相關問題