字符串不会显示

时间:2011-04-15 08:58:36

标签: ruby-on-rails ruby string methods parameters

我将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变量保持为空。也许我太傻了,看不到这个错误?

2 个答案:

答案 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"进行比较。