質問: #### ログインと非ログインで機能を使い分けたいです。 ログイン時は**投稿、編集、削除**など基本的な機能が使えるもの 非ログイン時には**閲覧**のみ可能といったものを作りたいのですが、どういった制限をかければ良いのかわかりません。具体的な機能やfilterなど教えていただきたいです。 ###### 調べたこと コントローラー内でフィルター機能や**before_action**や**login required** にonly オプション**を加えるのが一番近いのではないかと思っています。 ###### イメージ タイムラインのような一覧ページ(index page)のnavbar部分に投稿ボタンがあり 非ログインユーザーが投稿ボタンを押すとログインページ(login page)へ飛び、ログインユーザーは投稿ページ(new page)へと移動するものです。 ログインしなくても閲覧可能で、必要なところでログインが必要になる機能を作ってみたいと思い質問致しました。 ご教授いただければ幸いです。よろしくお願いします。
回答: application_controller.rbに ``` class ApplicationController < ActionController::Base before_action :login_required . . . private def login_required redirect_to login_path unless current_user end end ``` もう一つの自分が制限をかけたいコントローラに (自分の場合はquestions_controller.rb) ``` skip_before_action :login_required, only: [:index, :show] ``` で一覧画面と詳細画面はログインなしでも閲覧可能になりました。 flashメッセージなどにこれから取り組んでみます。 もっと最適な方法などございましたら教えていただけると助かります。