无法将false转换为String

时间:2014-03-03 10:19:26

标签: ruby

我有网址:

/foo
/bar/test

如果网址中只有一个/,我会尝试将item[1]添加到其中。否则,我希望将请求路径中的第一个/somethinggsub匹配。这里出了点问题:

((request.path.count "/" == 1) ? "/#{item[1]}/#{request.path}" : request.path.gsub( /^\/[^\/]+/, "/#{item[1]}" ))

1 个答案:

答案 0 :(得分:6)

我在这里重现了错误:

"aaa".count(false) # Can't convert false to String

这意味着你需要写

request.path.count "/" == 1)

作为

(request.path.count("/") == 1)

如果您写request.path.count "/" == 1),那么该行已被解析为(request.path.count("/" == 1))。因此,首先进行了等式测试,即"/" == 1"/" == 1返回false。然后将false作为参数传递给request.path.count(false)。然后它会将错误抛出为无法将false转换为String