Ruby-on-rails算术表达式
我有一个控制器动作如下:Ruby-on-rails算术表达式,ruby-on-rails,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)
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
当我执行包含此类控制器操作的程序时,出现以下错误:未定义nil:NilClass的方法“+”
。我需要一个解决方案。我是RoR新手,欢迎任何人的建议。Ruby是一种区分大小写的语言,因此
@start\u limit
和@start\u limit
(第7行,大写s)是两个不同的变量。将此更改为小写,它应该可以工作。替换:
@start\u limit=(@start\u limit)+(@last)
与:
@start\u limit=(@start\u limit)+(@last)
更改
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
到
如果你想得到好的答案,你应该提出好的问题:1)突出你的代码块。2) 使用两个空格缩进。3) 试着更好地向我们解释你的问题,提供整个错误及其发生的原因。
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