0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

古いRe:dashで文字列パラメータがエスケープされてしまう問題

Posted at

はじめに

この記事は v6.0.0 より古いバージョンの Re:dash を使用している方向けに書いています。
v6.0.0 以降を使用している方は参考程度に読んでください。

経緯と事象

仕事でデータ分析基盤として Re:dash を使っている。
アクセスログを解析するのに文字列型のクエリパラメータを設定してURLの絞り込みを行いたかった。
ところがデータは存在するはずなのにURLを指定するとなぜか検索結果が0件。

原因

渡されるパラメータを調べたらなんとスラッシュ // に変換されているではないか。
どうも特定の文字列を勝手に文字参照にエスケープしてくれちゃうらしい。
道理でマッチしないわけだ。

対処法

最初は REPLACE で置換していたんだけど、なんかスマートじゃないなぁと調べてみたらもっと良い方法を見つけた。
{{{param}}} とするだけ。ふつうのパラメータ指定のブラケットを1つ増やせばOK。
こうすると文字がエスケープされずにスラッシュをそのまま渡せる。
https://github.com/getredash/redash/issues/1211

確認した環境

  • Re:dash v5.0.2
  • macOS Mojave v10.14.6
  • Chrome v79.0.3945.88

現行バージョンではエスケープされないらしい (未確認)

v6.0.0 でエスケープされないように修正されたもよう
https://github.com/getredash/redash/pull/3058

おまけ

Re:dash は Mustache というテンプレートエンジンを使っているので参考までに貼っておく。
https://mustache.github.io/

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?