2013-03-31 67 views
0

我無法獲取will_paginate以在我創建的pinterest樣式的rails應用程序上工作。我一直在關注will_paginate railscast。 我得到一個錯誤,從該行: 編輯:這是我收到的錯誤:無法讓Will_Paginate在我的Rails應用程序上工作

NoMethodError in PinsController#index 

undefined method `page' for "created_at desc":String 
Rails.root: /Users etc.... 

Application Trace | Framework Trace | Full Trace 
app/controllers/pins_controller.rb:6:in `index' 

我所做的,到目前爲止,我還will_paginate我的Gemfile就跑束這樣:

這是我的Gemfile:

gem 'rails', '3.2.11' 
gem 'jquery-rails 
gem 'devise' 
gem 'simple_form' 
gem "paperclip", "~> 3.0" 
gem 'aws-sdk' 
gem 'will_paginate', '> 3.0' 
gem 'bootstrap-will_paginate', '0.0.6' 


# Bundle edge Rails instead: 
# gem 'rails', :git => 'git://github.com/rails/rails.git' 

group :production do 
    gem 'pg' 
end 

group :development, :test do 
    gem 'sqlite3' 
end 


# Gems used only for assets and not required 
# in production environments by default. 
group :assets do 
    gem 'sass-rails', '~> 3.2.3' 
    gem 'coffee-rails', '~> 3.2.1' 
    gem 'bootstrap-sass', '~> 2.3.1.0' 

    # See https://github.com/sstephenson/execjs#readme for more supported runtimes 
    # gem 'therubyracer', :platforms => :ruby 

    gem 'uglifier', '>= 1.0.3' 
end 

這是我pins_controller.rb(從哪裏獲得我的錯誤):

class PinsController < ApplicationController 
before_filter :authenticate_user!, except: [:index] 
# GET /pins 
# GET /pins.json 
def index 
@pins = Pin.order("created_at desc").page(params[:page]).per_page(5) 
    respond_to do |format| 
    format.html # index.html.erb 
    format.json { render json: @pins } 
end 
end 

這是我的index.html.erb:

<%= render 'pages/home' %> 
<div id="pins"> 
<%= render @pins %> 
<%= will_paginate @pins %> 
</div> 

如果你想看到什麼之前,我開始用will_paginate玩我一直在做,你可以看到我的代碼上my github repo.我是新發布的問題,但我在這裏找不到任何東西,並試圖遵循最佳做法。謝謝你的幫助。

+0

你得到的錯誤是什麼? –

+0

我剛剛編輯這篇文章,讓你可以看到它。 Thx看看! – mongoUser

回答

0

對不起,你沒有「訂單」條款嘗試?

,如果工程沒有它,你可以試試這個:

@pins = Pin.paginate(:per_page => 5, :page => params[:page]).order('created_at DESC') 

另外,我在你的寶石文件

寶石 'will_paginate' 看見 '> 3.0'

我不是確定符號'> 3.0'是正確的; '〜> 3.0'似乎更好。

如果所有的不解決您的問題,嘗試運行「捆綁安裝」再一次...也許一個問題,所述捆綁...並重新啓動服務器(編輯從您的評論)

設我們知道你是否找到了什麼!

乾杯,

+0

我認爲> 3.0是奇怪的,但我跟隨如何瑞安貝茨做到了在他的railscast.It似乎工作得很好。他更新的will_paginate視頻表明,將3.0和up.paginate允許.page所以:'.page(params [:page])。per_page(20)'也適用。我試了你的答案並且.page版本和所有三個工作。請編輯您的答案,因此它包括重新啓動我的服務器。感謝您的幫助! – mongoUser

0

order後刪除空間:

Pin.order("created_at desc").page(params[:page]).per_page(5) 

是很重要的。隨着空間("created_at desc").page...被評估,然後傳遞給order ......

+0

不是這樣,當我創建問題時,肯定是一個錯字。在順序和括號之間沒有空格。我修復它,所以它不會混淆。 Thx尋找壽! – mongoUser

0

有一個在你調用will_paginate在你的控制器的方式有問題,應該是

@pins = Pin.order('created_at desc').paginate(:per_page => 5, :page => params[:page]) 

,而不是

@pins = Pin.order("created_at desc").page(params[:page]).per_page(5) 

看到https://github.com/mislav/will_paginate#basic-will_paginate-use

希望這有助於

乾杯

+0

沒有工作 - 同樣的錯誤:未定義的方法分頁(相同,但與'分頁',而不是'頁')非常感謝幫助! – mongoUser

相關問題