我将bool值作为参数并将其分配给变量
@package = params[:package]
现在,我有一个方法应该根据package
的值返回一个字符串。该方法如下所示:
def get_description(package)
if package == 1
"foo"
elsif package == 2
"bar"
end
end
在另一种方法中,我尝试通过以下方式获取@description
:
@description = get_description(@package)
问题是,不显示字符串。 @description
变量保持为空。也许我太傻了,看不到这个错误?
答案 0 :(得分:5)
如果需要,可以使用代码将package的值更改为integer:
def get_description(package)
package = package.to_i
if package == 1
"foo"
elsif package == 2
"bar"
end
end
或使用案例陈述:
def get_description(package)
case package.to_i
when 1
"foo"
when 2
"bar"
end
end
答案 1 :(得分:3)
所有参数都以字符串的形式到达您的控制器,无论您认为它们应该是什么类型。如果参数最初由View使用Integer写入浏览器,则甚至是这样。这只是因为浏览器将数据发送回服务器的方式。
您需要将参数转换为整数,或将其与字符串"1"
和"2"
进行比较。