ヘルパーを使ってビューからメソッドを実行
ログイン中の場合(クッキーに有効なトークンが設定されている状態)は、再度ログイン画面を表示した際に、ログインフォームを表示せず、○○さんログイン中、と表示するように設定してみました。
| アプリ作成 | 11:07 | comments:0 | trackbacks:0 | TOP↑
レンタルサーバーでWebサイトを公開すべく、Ruby on Railaの勉強をする日々を語ります。
<% if signed_in? %>
<%= @user.name %>さんログイン中
<% else %>
<h1>ログイン</h1>
<div class="row">
<%= form_for(:user, url: auth_users_path) do |f| %>
<%= f.label :メールアドレス %>
<%= f.text_field :email %>
<%= f.submit "ログイン", class: "btn btn-large btn-primary" %>
<% end %>
</div>
<% end %>
$ vi app/helpers/users_helper.rb
def signed_in?
@user = User.find_by(remember_token: cookies[:remember_token])
!@user.nil?
end
end
$ vi app/helpers/test_helper.rb
module TestHelper
def signed_in?
@user = User.find_by(remember_token: cookies[:remember_token])
!@user.nil?
end
end
| アプリ作成 | 11:07 | comments:0 | trackbacks:0 | TOP↑
$ vi db/migrate/20141201113639_add_remember_token_to_users.rb
class AddRememberTokenToUsers < ActiveRecord::Migration
def change
add_column :users, :remember_token, :string
add_index :users, :remember_token
end
end
$ vi app/models/user.rb
class User < ActiveRecord::Base
def User.new_remember_token
SecureRandom.urlsafe_base64
end
def show
@user = User.find_by(remember_token: cookies[:remember_token])
end
def auth
user = User.find_by(email: user_params[:email].downcase)
if user
remember_token = User.new_remember_token
cookies.permanent[:remember_token] = remember_token
user.update_attribute(:remember_token, remember_token)
redirect_to user
end
end
| アプリ作成 | 10:03 | comments:0 | trackbacks:0 | TOP↑
def show
if User.find(cookies[:user_id])
@user=User.find(cookies[:user_id])
@session_id=request.session_options[:id]
end
end
def auth
cookies[:user_id] = nil
user = User.find_by(email: user_params[:email].downcase)
if user
cookies[:user_id] = user.id
redirect_to user
end
end
| アプリ作成 | 11:00 | comments:0 | trackbacks:0 | TOP↑
| アプリ作成 | 10:04 | comments:0 | trackbacks:0 | TOP↑
def auth
session[:user_id] = nil
user = User.find_by(email: user_params[:email].downcase)
if user
session[:user_id] = user.id
redirect_to user
end
end
def show
if User.find(session[:user_id])
@user=User.find(session[:user_id])
@session_id=request.session_options[:id]
end
end
| アプリ作成 | 10:33 | comments:0 | trackbacks:0 | TOP↑
| PAGE-SELECT | NEXT ≫
Author:ほのぼにすと
40代のサーバーエンジニアです。
Ruby on Railsは初心者です。
レンタルサーバーでWebサイトを公開すべく勉強中です。