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は#{}でくくらないとだめー。
ちなみに両方ともシングルクォートはできなかったはず。多分。
違ったらおせーてくださいませ。