Flash変数は。。。 | PHPerがrubyを使いはじめた

Flash変数は。。。

■Ruby

今日はrubyだけ。

Flash変数にnowというものがあることをはじめて知った。

こんな感じで使うらしい。


例1)通常のFlash
▼controller:

flash[:error] = "エラー#{flash[:error]}"

▼view:

<p id="error"><%= flash[:error] %></p>

表示結果
1回目:エラー
2回目(F5):エラーエラー
3回目(もいっちょF5):エラーエラーエラー

例2)Nowを使ってみた
▼controller:

flash.now[:error] = "エラー#{flash[:error]}"

▼view:

<p id="error"><%= flash[:error] %></p>

表示結果
1回目:エラー
2回目(F5):エラー
3回目(もいっちょF5):エラー

renderすると変数の値は保持される。flashも例外ではない。
flashのerrorには"エラー#{flash[:error]}"と今までのエラー+エラーって文字列を入れてるから増えるのは当然か。


※ちなみに豆知識

文字列の中で変数を展開する方法はPHPだとこんな感じになる。

■PHP

$fruit="メロン";

print "ボクは $fruit が大好きです";


■Ruby

rubyだとこんな感じ。

fruit="メロン"

p "ボクは#{fruit}が大好きです"


両方ともダブルクォートでくくった中で変数fruitが展開されるのは同じ。

ただ、PHPはダブルクォート内で変数名を書けばいいけど、rubyは#{}でくくらないとだめー。

ちなみに両方ともシングルクォートはできなかったはず。多分。


違ったらおせーてくださいませ。