Commit dbb3c8b8 by tady

devise routing 修正

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