式展開のある記述では、”” ダブルクオーテーションを使え。


# 問題です。

どちらが正しいでしょうか?

A:
redirect to("/memos/#{params[:id]}")

B:
redirect to(‘/memos/#{params[:id]}’)



答えはCMのあとで。



# 答えの時間

⭕️:
```rb
redirect to("/memos/#{params[:id]}")
```

❌:
```rb
redirect to('/memos/#{params[:id]}')
```

# なぜシングルクォーテーションではだめなのか
例えば、
```rb
redirect to('/memos')
```
はルーティング問題ありませんでした。
これの上との違いといえば、式展開してますね。

ということで、確認。

[リファレンス](https://docs.ruby-lang.org/ja/latest/doc/spec=2fliteral.html)

> 文字列リテラル
例:
"this is a string expression\n"
'this is a string expression\n'
%q!I said, "You said, 'She said it.'"!
%!I said, "You said, 'She said it.'"!
%Q('This is it.'\n)
"this is multi line
string"
文字列はダブルクォートまたはシングルクォートで囲まれています。ダブルクォートで囲まれた文字列ではバックスラッシュ記法と式展開(後述)が有効になります。シングルクォートで囲まれた文字列では、 \\ (バックスラッシュそのもの)と \' (シングルクォート) を除いて文字列の中身の解釈は行われません。シングルクォートで囲まれた文字列では行末の \ は \ そのものとして解釈されます。
複数行にわたって書くこともできます。この場合含まれる改行文字は常に\nになります。実際のソースファイルの改行コードとは無関係です。
空白を間に挟んだ文字列リテラルは、コンパイル時に1つの文字列リテラルと見倣されます。

らしいです。

ちなみに↓

# 参考記事

https://qiita.com/ryosuketter/items/ddad508cb0124e4fe378

https://necojackarc.hatenablog.com/entry/2015/09/12/220832

https://github.com/fortissimo1997/ruby-style-guide/blob/japanese/README.ja.md#consistent-string-literals


今後、””派になろうかと思います。
以上です。