Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 字符串赢了';我没有出现_Ruby On Rails_Ruby_String_Methods_Parameters - Fatal编程技术网

Ruby on rails 字符串赢了';我没有出现

Ruby on rails 字符串赢了';我没有出现,ruby-on-rails,ruby,string,methods,parameters,Ruby On Rails,Ruby,String,Methods,Parameters,我得到一个布尔值作为参数,并将其分配给一个变量 @package = params[:package] 现在,我有一个方法,它应该根据package的值返回一个字符串。方法如下所示: def get_description(package) if package == 1 "foo" elsif package == 2 "bar" end end 在另一种方法中,我尝试通过以下方式获取@description: @description

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

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

def get_description(package)
    if package == 1
      "foo"
    elsif package == 2
      "bar"
    end
  end
在另一种方法中,我尝试通过以下方式获取
@description

@description = get_description(@package)

问题是,字符串不显示。
@description
变量保持为空。也许我太蠢了,看不到这个bug?

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

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

如果需要,可以使用代码将包的值更改为整数:

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”
“2”
进行比较。所有参数都以字符串的形式到达控制器,而不管您认为它们应该是什么类型。如果该参数最初是由使用整数的视图写入浏览器的,则情况也是如此。这只是因为浏览器将数据发送回服务器的方式


您需要将参数转换为整数,或者将其与代码中的字符串
“1”
“2”

进行比较,我假设您指的是二值(即“1”或“2”),不是真/假意义上的布尔值?我假设您指的是二值(即“1”或“2”),不是真/假意义上的布尔值?