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を入力させるサイトはどうやってるんでしょうね。