既読ユーザー
その他2人
【自主課題】postページのコメント欄の制御と非ログインユーザのフレンドリーフォワーディングを考察
ディスカッション
  • daidai3110 2021/08/08 13:27

    パッと思いついたのは

    「コメントを投稿するにはこちらからログインしてください」のリンクにクエリパラメータとして「http://localhost:3000/login?redirect_to=http://localhost:3000/posts/1」のような感じでパラメータを付与してあげて、サーバ側ではこんな感じにしてあげるとかかなぁ。

    def store_location
      session[:return_to_url] = params[:redirect_to] if params[:redirect_to].present
    end
    
  • siriusjunior 2021/08/08 14:43

    ありがとうございます。ちなみにparams[:redirect_to]はどこで設定すればいいんですかね?

  • daidai3110 2021/08/08 15:31

    http://localhost:3000/login?redirect_to=http://localhost:3000/posts/1

    このURLをどうしたら生成できるのかを考えると良いと思いますよ!

  • siriusjunior 2021/08/08 16:37

    リンクを踏んでログインした後に、再度パラメータのurlにリダイレクトするってことでしょうかね?
    少なくともログインリンクを踏んで、redirect_toとしていることで、session[:redirect_to]に記録させるのでparams[:redirect_to]は形成されるということとして、
    ログイン後にそのリンクで指定されていたリダイレクト先のページに戻る(sission[:return_to_url]へ)。みたいな感じだと思うのですが、
    クエリパラメータには

    = link_to 'ログイン', login_path?redirect_to=posts/params[:id]
    

    みたいな感じでしょうかね?
    リンクの機能がそのように機能すれば・・・うーん

  • daidai3110 2021/08/10 07:33

    すみません、昨日予定があってレスできませんでした。

    ググる習慣をつけられると良いですね。

    「link_to params」でググった結果一番上に出てきた記事です。

    https://qiita.com/ATORA1992/items/566d76a7092bff40df4c

  • siriusjunior 2021/08/10 15:13

    ありがとうございます。
    今後おろそかにしないよう気をつけます。