-2

私はこのようなコントローラーアクションを持っています:

def index    
    @start_limit = 0    
    @last_limit = 5    
    @start = params[:start]    
    @last = params[:next]    
    if @last    
      @start_limit = (@Start_limit) + (@last)  
      @last_limit = (@last_limit) + (@last)  
    elsif @start  
      @start_limit = (@start_limit) - (@start)  
      @last_limit = (@last_limit) - (@start)  
    else  
      # do nothing  
    end  
end  

このようなコントローラアクションを含むプログラムを実行しているときに、次のエラーが発生します
undefined method '+' for nil:NilClass。解決策が必要です。
私はRoRを初めて使用します。誰かの提案を歓迎します。

4

3 に答える 3

2

Rubyは大文字と小文字を区別する言語であるため@start_limit@Start_limit(7行目、大文字)は2つの異なる変数です。これを小文字に変更すると、機能するはずです。

于 2012-06-01T08:57:42.943 に答える
2

交換:

@start_limit = (@Start_limit) + (@last)

と:

@start_limit = (@start_limit) + (@last)

于 2012-06-01T08:57:43.257 に答える
1

変化する

if @last    
      @start_limit = (@Start_limit) + (@last)  
      @last_limit = (@last_limit) + (@last)  
    elsif @start  
      @start_limit = (@start_limit) - (@start)  
      @last_limit = (@last_limit) - (@start)  
    else 

if @last    
      @start_limit = (@start_limit) + (@last)  
      @last_limit = (@last_limit) + (@last)  
    elsif @start  
      @start_limit = (@start_limit) - (@start)  
      @last_limit = (@last_limit) - (@start)  
    else 
于 2014-06-27T09:10:13.023 に答える