0

Ruby 新手,需要一些帮助。将变量传递给 select_list,我想找到与变量匹配的第一个选项。

列表选项是:

  • 波特兰
  • 缅因州波特兰
  • 波特兰,或

...我将城市分配给变量

var="Portland"

使用: f.select_list(:id => /location/).select(/var/)

NoValueFoundException

但是当我使用...

`f.select_list(:id => /location/).select(/Portland/) #no exception, gives 1st entry`

如何使用正则表达式和变量访问第一个选项?

4

1 回答 1

0

您需要从变量 var 的字符串值构造正则表达式,而不是使用文字正则表达式 /var/。

例子:

:001 > /hello/.match('hello world')
 => #<MatchData "hello"> 
:002 > exp = 'hello'
 => "hello" 
:003 > /exp/.match('hello world')
 => nil 
:004 > Regexp.new(exp).match('hello world')
 => #<MatchData "hello"> 
于 2012-07-13T19:16:58.423 回答