[Rails] Devise|ログイン関連のリンクを貼る

Deviseでログイン機能を実装してきましたが,今の実装では,ユーザ登録したりログインしたりするためにわざわざURLを入力する必要があります.

これでは不便なので,ログイン関連のリンクを作ります.

SPONSORED LINK

パスの生成はヘルパーで

Railsでは,ヘルパーを使ってURLを生成することができます.

Deviseでは,デフォルトで以下のようなヘルパーが用意されています.

new_user_registration_path : GET : /users/register

new_user_session_path : GET : /users/sing_in

destroy_user_session_path : DELETE : /users/sing_out

まだ他にもありますが,今回は最低限のリンクとして以上を表示します.

link_to でリンクを貼る

先ほどのヘルパーを使ってリンクを貼ってみます.

Hamlで書いています.

ログアウトのパスだけメソッドが DELETE であることに注意.

= link_to 'ログアウト', destroy_user_session_path, :method => :delete
= link_to 'ユーザ登録', new_user_registration_path
= link_to 'ログイン',   new_user_session_path

SPONSORED LINK

ログイン状態によって表示するリンクを変える

ログインしているのにログインリンクが表示されていたり,ログインしてないのにログアウトリンクが表示されていたりするのはおかしいので,ログイン状態によって表示するリンクを変えてみます.

使うのは current_user というヘルパー.現在ログインしているユーザのモデルを取得できます.これを利用して書き換えたものがこちら.

- if current_user
  = link_to 'ログアウト', destroy_user_session_path, :method => :delete
- else
  = link_to 'ユーザ登録', new_user_registration_path
  = link_to 'ログイン',   new_user_session_path

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です