2012-01-24 56 views
4

我在我的控制了這一點:Rails可以不DUP NilClass錯誤的PARAMS

@artists = Artist.where("artist LIKE ?", "%#{params[:term]}%").limit(500).paginate(params[:page]) 

而且我得到了can't dup NilClass錯誤。

現在,params [:term]和params [:page]是2個不同的變量,所以爲什麼會出現錯誤?如果我刪除第二個參數變量,錯誤消失了。

它仍然會出現,即使我這樣做:

page = params[:page] 

然後如下:

paginate(page) 

我想明白爲什麼會發生,以及如何解決它,如何使用來自同一行的params()中的2個變量沒有出現錯誤。

編輯

我發現,取代PARAMS整數:在一個稍微不同的錯誤結果[頁碼]:can't dup FixNum所以也許問題不是使用參數,但別的東西。仍然不知道如何解決它。

回答

14

我的錯誤。我爲此深表歉意,但我不恰當地使用paginate。我希望我能刪除這個問題,但似乎沒有辦法。使用它的正確方法是:

paginate(:page => params[:page] 

我想這時候,你已經在代碼盯着太久:)

也許這將幫助別人處理分頁會發生什麼。我非常喜歡它,但錯誤可能會更具描述性。不消除這個問題

<%= will_paginate @artists if @artists.respond_to? :total_pages %> 
+1

幫助了我這樣一個愚蠢的笨蛋,ta! –

+1

絕對不是要刪除的東西,我只是犯了同樣的錯誤! – GMA

2

感謝:

例如,我會一直除非我做到這一點得到一個未知的方法錯誤。我被同樣忽視和改變: 修正它。 到 到 paginate(page:params [:page]) 修復它。

+0

很高興幫助某人。我從那以後轉向了Kaminari,它有更好的支持。 Will_patinate在水資源開發方面似乎已經死亡。 – kakubei

相關問題