在Ruby中使用半冒号进行字符串匹配?

时间:2016-04-26 18:25:42

标签: ruby-on-rails ruby string if-statement

我想了解我们是否可以在字符串匹配中使用;?即使以下代码似乎不起作用..但我试图了解以前的开发人员想要做什么。

if param.type == 'Team'
  search_url += '/type-Team'
elsif param.type == 'Agent;Team;Office'
  search_url += '/type-Agent;Team;Office'
end

1 个答案:

答案 0 :(得分:1)

通常解开这样的代码需要以更简单的形式重写它:

case (param.type)
when 'Team'
  search.url += '/type-Team'
when 'Agent', 'Office'
  search.url += '/type-Agent;Team;Office'
end

如果url部分更简单,这实际上只是一个白名单过滤器:

case (param.type)
when 'Team', 'Agent', 'Office'
  search.url += "/type-#{param.type}"
end

您必须调查您type所接收的值以及实际应添加到url的内容,而不管其中表达的是什么。