在Rails中,gsub在本地工作方式与Heroku不同

时间:2014-05-11 06:30:10

标签: ruby-on-rails ruby heroku

我在本地运行了以下代码,其中:query"new york"excerpt字符串包含"New York"

<%= excerpt.gsub(params[:query].to_s, '<strong><span style="background-color: yellow">\0</span></strong>').html_safe %>

然后gsub匹配"New York"。换句话说,gsub不区分大小写。但是,在Heroku上,匹配仅在完全匹配时发生,即"new york"未与"New York"同化。

我将代码上面的代码更改为:

<%= excerpt.gsub(/#{params[:query].to_s}/i, '<strong><span style="background-color: yellow">\0</span></strong>').html_safe %>

现在它在本地和Heroku上工作。

之前我因为数据库格式而遇到localhost和Heroku部署之间的差异:我在本地使用SQLite,在Heroku上使用Postgres,其中区分大小写规则对于查询不同。但是因为这只是对字符串变量执行gsub,所以我无法弄清楚当服务器不会在本地实例找到匹配的原因时。我在这里错过了什么吗?

1 个答案:

答案 0 :(得分:0)

如果您将字符串作为第一个参数传递给gsub,它将只匹配该字符串。字符串不区分大小写匹配的概念。 Heroku上的行为是正确的行为。而是你的本地环境以某种方式搞砸了。