【问题标题】:String won't show up字符串不会显示
【发布时间】:2011-08-06 04:18:27
【问题描述】:

我得到一个布尔值作为参数并将其分配给变量

@package = params[:package]

现在,我有一个方法应该根据package 的值返回一个字符串。该方法如下所示:

def get_description(package)
    if package == 1
      "foo"
    elsif package == 2
      "bar"
    end
  end

在另一种方法中,我尝试通过以下方式获取@description

@description = get_description(@package)

问题是,字符串没有显示出来。 @description 变量保持为空。也许我太笨了,看不到这个错误?

【问题讨论】:

  • 从您的代码中,我假设您的意思是双值(即“1”或“2”),而不是真/假意义上的布尔值?

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


【解决方案1】:

如果您愿意,可以使用您的代码将包的值更改为整数:

def get_description(package)
  package = package.to_i
  if package == 1
    "foo"
  elsif package == 2
    "bar"
  end
end

或者使用case语句:

def get_description(package)
  case package.to_i
  when 1
    "foo"
  when 2
    "bar"
  end
end

【讨论】:

    【解决方案2】:

    所有参数都以字符串的形式到达你的控制器,不管你认为它们应该是什么类型。如果参数最初是由 View 使用 Integer 写入浏览器的,情况也是如此。这只是因为浏览器将数据发送回服务器的方式。

    您需要将参数转换为整数,或将其与字符串"1""2" 进行比较。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-11
      相关资源
      最近更新 更多