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を追加する必要がある。

 - プログラミング

336px




336px




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

  関連記事

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

ActionViewを使ってModelクラスの新規作成画面を作りたい。 ウェブアプリ上でModelのクラスを作成する。 …

no image
Toolbarで表示する矢印アイコンの色を変えたい

http://stackoverflow.com/questions/26788464/how-to-change-color-of-the-back-arrow-in-the-new-material-theme 動的に色を変えるイイカンジな方法が分からず困っていた。 …

Ruby,Railsのチートシート

こういうのブログ形式じゃなくてwikiの方が良いのでは。。 と、遠い目をしつつ。 …

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

Modelを作り、コンソール上からデータを追加した。 次はこのデータをlocalhost:3000にアクセスしたときに表示させてみたい。 …

MacでDockerした感想文

Contents1 前提:DockerはLinux上でしか動かない1.1 …

no image
AndroidのHandlerって何?

Handlerは何?と、Handlerを直視するとHandlerの存在意義というかなんというか文脈を捉えることが難しい。 なので、まずはAndroidがシングルスレッドである、という所からスタートしてHandlerに向かってゆく。 …

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

整理がてらメモ。 Contents1 …

ReactとFluxとReduxについて順を追って整理する

書き途中 Contents1 …

no image
フロントエンド開発のメモ

最近のフロントエンド開発ではビルドランナーを使うのが常識になってきてるみたいなので。 jspm的なもっと進んだやり方でも良いんだけど、pluginが少ない、文献が少ない、自身の技術力不足、ということでビルドランナーなやり方でやる。 …

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

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