Ruby on rails算术表达式

时间:2012-06-01 08:50:29

标签: ruby-on-rails

我有一个像这样的控制器动作:

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的新手,我欢迎任何人的建议。

3 个答案:

答案 0 :(得分:2)

Ruby是一种区分大小写的语言,因此@start_limit@Start_limit(第7行,大写s)是两个不同的变量。将其更改为小写,它应该可以工作。

答案 1 :(得分:2)

替换:

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

使用:

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

答案 2 :(得分: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