我正在运行grep方法来通过模式匹配进行过滤。这是一个示例代码。
companies.grep /city/
但是,ruby不允许我在rails视图中输入带有块的area_code。相反,我被迫对它进行硬编码:
companies.grep /miami/
请记住,城市是一个变量。例如,
city = miami
然而,它更新。你知道我可以将变量传递给grep方法吗?
另外,我尝试过companies.grep /#{city} /,但它没有工作
答案 0 :(得分:19)
companies.grep /#{city}/
# or
companies.grep Regexp.new(city)
如果是简单的字母数字查询,这应该足够了;但是,如果你不打算使用正则表达式运算符,那么最好去实现它们。因此,更好的版本:
companies.grep /#{Regexp.escape city}/
# or
companies.grep Regexp.new(Regexp.escape city)