我有一个像这样的控制器动作:
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的新手,我欢迎任何人的建议。
答案 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