railsのhidden_fieldで渡す値をsessionで渡してみた
これ以外のいい方法があれば、教えてください>_<
状況
- 画像のurlを送信
- 画像のurlが正しいか確認したい
- 画像表示をして確認したいので、一時的にでも保存したくない(確認画面に移行)
- 画像確認後、画像に対して引用先を入力させる
画像のurlを送信→validationでチェック→確認画面で画像確認→それに対して引用先を記入させて送信
画像を保存すれば、なんとでもなりそうなんですが、いきなり画像保存はリスクが高すぎる。
画像保存→やっぱりやめた(画像のみデータ保存される)→DBもったいなーい>_<
キャンセルして削除するって方法もあるのですが、DBに画像の書き込みを何度もしたくない(なんとなく)
ということで、画像のurlをsessionで保存することにしました。
やり方
module SessionsHelper def reset_image_url session[:image_url] = nil end def store_image_url(url) session[:image_url] = url end def set_image_url session[:image_url] end end
これでsessionに状態を保存するようにしました。
あとは画像表示を次の確認画面で渡せばいいので、こんな感じにしました。
= image_tag set_image_url
これでurl表示させてやります。
この値をsessionで保存しているので、sessionで値を渡して保存させます。
まとめ
一時保存のやり方をsessionで行いました。
データ量が多ければ、NGなのですが、urlのみだったので、今回はこれで対応しました。
naverまとめみたいな、画像urlを入力させるサイトはどうやってるんでしょうね。