Commit dbb3c8b8 by tady

devise routing 修正

parent 5a4f1f2e
......@@ -50,6 +50,9 @@ gem 'mysql2'
gem 'devise'
# http://d.hatena.ne.jp/tkawa/20130812/p1
gem 'devise-better_routes'
gem 'omniauth-google-oauth2'
# Markdown
......
......@@ -104,6 +104,9 @@ GEM
railties (>= 3.2.6, < 5)
thread_safe (~> 0.1)
warden (~> 1.2.3)
devise-better_routes (0.0.4)
devise (>= 3.0.0.rc)
rails (>= 4.0.0.rc1)
diff-lcs (1.2.5)
docile (1.1.3)
domain_name (0.5.18)
......@@ -387,6 +390,7 @@ DEPENDENCIES
coveralls
database_rewinder
devise
devise-better_routes
draper (~> 1.3)
factory_girl_rails
faraday
......
/* Sample */
/*
.dropdown-menu {
border: 1px solid #ddd;
background-color: white;
......@@ -18,6 +20,7 @@
.dropdown-menu .active {
background-color: rgb(110, 183, 219);
}
*/
/* SHOULD not modify */
......
class UsersController < ApplicationController
class MeController < ApplicationController
before_action :set_user, only: [:edit, :update]
def edit
......@@ -6,12 +6,12 @@ class UsersController < ApplicationController
def update
respond_to do |format|
if @user.update(user_params)
format.html { redirect_to edit_user_path, flash: { notice: 'Post was successfully updated.' } }
if @me.update(user_params)
format.html { redirect_to edit_me_path, flash: { notice: 'Post was successfully updated.' } }
format.json { head :no_content }
else
format.html { render action: 'edit' }
format.json { render json: @user.errors, status: :unprocessable_entity }
format.json { render json: @me.errors, status: :unprocessable_entity }
end
end
end
......@@ -20,7 +20,7 @@ class UsersController < ApplicationController
# Use callbacks to share common setup or constraints between actions.
def set_user
@user = current_user
@me = current_user
end
def user_params
......
......@@ -17,7 +17,7 @@ class Users::OmniauthCallbacksController < Devise::OmniauthCallbacksController
sign_in_and_redirect @user, event: :authentication
else
session['devise.google_data'] = request.env['omniauth.auth']
redirect_to new_user_registration_url
redirect_to edit_me_path
end
end
end
......@@ -37,20 +37,15 @@ class User < ActiveRecord::Base
# Device
def self.find_for_google_oauth2(access_token, signed_in_resource = nil)
info = access_token.info
user = User.where(email: info['email']).first
unless user
new_nickname = (("a".."z").to_a + ("A".."Z").to_a + (0..9).to_a).shuffle[0..4].join
user = User.create(name: info['name'],
image_url: info['image'],
email: info['email'],
password: Devise.friendly_token[0, 20],
nickname: new_nickname
)
user = self.where(email: access_token.info['email']).first_or_create do |_user|
_user.name = access_token.info['name']
_user.image_url = access_token.info['image']
_user.password = Devise.friendly_token[0, 20]
_user.nickname = (("a".."z").to_a + ("A".."Z").to_a + (0..9).to_a).shuffle[0..4].join
end
user.update_attributes(
user.update(
google_auth_token: access_token.credentials['token'],
google_refresh_token: access_token.credentials['refresh_token'],
google_token_expires_at: Time.at(access_token.credentials['expires_at'])
......
#post-form
= form_for(@user) do |f|
- if @user.errors.any?
= form_for(@me, url: me_path) do |f|
- if @me.errors.any?
#error_explanation
h2
= pluralize(@user.errors.count, "error")
= pluralize(@me.errors.count, "error")
| prohibited this post from being saved:
ul
- @user.errors.full_messages.each do |msg|
- @me.errors.full_messages.each do |msg|
li= msg
.row
......
......@@ -37,9 +37,9 @@ nav.navbar.navbar-default.navbar-fixed-top role="navigation"
| 下書き
span.badge.pull-right = current_user.decorate.draft_count
li
a href=edit_user_path(current_user) マイページ
a href=edit_me_path マイページ
li.divider
li
a href=sign_out_path data-method="delete" rel="nofollow" SignOut
a href=me_session_path data-method="delete" rel="nofollow" SignOut
......@@ -21,15 +21,22 @@ Rendezvous::Application.routes.draw do
post 'tags/:name/move_to/:move_to_name' => 'tags#move_to', as: 'move_to_tag'
resources :tags, :param => :name
resource :user, :only => [:edit, :update]
# resource :user, :only => [:edit, :update]
# devise_for :users , controllers: { omniauth_callbacks: 'users/omniauth_callbacks' }
# devise_for :users , only: [:sign_in, :sign_out, :session]
devise_for :users, controllers: { omniauth_callbacks: 'users/omniauth_callbacks' }, skip: [:sessions]
devise_scope :user do
# get 'sign_in', to: 'users/sessions#new', as: :new_user_session
delete 'sign_out', to: 'devise/sessions#destroy', as: :sign_out
end
devise_for :users,
path_names: {current_user: 'me'},
controllers: { omniauth_callbacks: 'users/omniauth_callbacks' },
skip: [:passwords]
# , controllers: { omniauth_callbacks: 'users/omniauth_callbacks' } # , skip: [:sessions]
# devise_scope :user do
# get 'sign_in', to: 'users/sessions#new', as: :new_user_session
# delete 'sign_out', to: 'devise/sessions#destroy', as: :sign_out
# end
# get 'users/edit' => 'users#edit', as: 'edit_user'
# post 'users/update' => 'users#update', as: 'update_user'
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment