moxt

Just another Blog site

意識低いRuby on Rails再入門6 ~ログイン必須のControllerを作りたい~

      2015/07/03

ログイン状態を取得するためのSessionsHelperを前に書いた

新規投稿画面を表示したり、実際に投稿するときにはログイン必須であることを保証したい。
ログインしていない状態でアクセスが来たらログイン画面に遷移させたい。

この要件を満たすためにログインが必須なControllerにbefore_actionという仕組みを利用して実装する。

ここでは:onlyというオプションを追加している。
:onlyは指定されたエンドポイントでのみbefore_actionを実行するためのオプション。
新規作成画面と、新規投稿処理を司る[:new,:create]のみを対象としている。

それから実際に呼び出されるメソッドを定義している。
Helperメソッドのsign_in?を呼び出しfalseであればnew_session_urlにリダイレクトする、というものだ。
このnew_session_urlは/sessions/newを指している。

Helperは任意のView内で呼び出すことができるが、Controllerの場合は明示的にincludeしないと使えない。
なので、ApplicationControllerかItemsController内でinclude SessionsHelperを追加する必要がある。

 - プログラミング

  • このエントリーをはてなブックマークに追加
  • follow us in feedly

  関連記事

no image
ディープラーニングが気になる

ダラダラとメモ。 Contents1 …

logo_og
ReactNativeでGiphyのデータを表示する

まずは下記をサクッとパクってみる。 当方、比較的AndroiderなのでAndroidで。 …

no image
Bower再入門

Contents1 Bowerとは何なのか2 …

no image
MecabをPythonから使いたい

ベイズ分類器を自分で作りたかった。 そのためには、文書を単語の集合に変換する必要がある。 …

no image
SwiftでOSのバージョンが8.0.0以下とそれより大きいヤツで処理を分岐させたい

前置き push通知のデバイストークン取得方法がiOS8から変わりました。 …

no image
意識低いRuby on Rails再入門4

下記の内容を読んでテスト系の処理をすっ飛ばしたメモ。 http://railstutorial.jp/chapters/sign-in-sign-out?version=4.0#top …

no image
RubyMine(OSX)でGit操作するときのコマンド集

GITを操作系のポップアップを表示したい

no image
Docker導入したらどうするの?

Dockerを導入したけど、nginxが入った環境がどこでも使えるようになった!程度だったらあんま意味ないよね。 Web開発をする上でDockerをどのように使うのが効果的か考えてみる。 …

no image
goで無限ループ

しょうもないが忘れるので。。

logo_og
ReactなComponent同士を連携させたい

実践的なサンプルに塗れてなんとなく使ってると破綻する。 分かってること、分かってないことを整理しておきたい。 …