るびらな!

RubyをLearnする人の勉強記録。(超)弩(級の)素人なので、誰かダメさがわかる人に罵ってもらったりして、少しずつ知見を広げたいと思っています。

多忙化したけど、RailsTutorial進めた

ここも押していただけると嬉しいです #=> にほんブログ村 IT技術ブログへ にほんブログ村 IT技術ブログ Rubyへ にほんブログ村 IT技術ブログ Ruby on Railsへ

さて、ちょっと週末すら休めない日々が続いていて厳しいのですが、ちょこっと進めたので備忘録。

まずは、mhartl自身の作ったRails4向けのRailsTutorialのリポジトリを検索して発見。


railstutorial/sample_app_rails_4 · GitHub

ということで、このリポジトリをローカルにクローンして、users_controllerを比較しながら、すでに終わってる部分に関係しそうなあたりをぺぺっと書いてみた。

class UsersController < ApplicationController
  before_action :signed_in_user,
                only: [:index, :edit, :update, :destroy, :following, :followers]
  before_action :correct_user,   only: [:edit, :update]
  before_action :admin_user,     only: :destroy

  	def index
  		@users = User.paginate(page: params[:page])
  	end

	def show
		@user = User.find(params[:id])
	end
	
	def new
		@user = User.new
	end

	def create
		@user = User.new(params[:user])
		if @user.save
			sign_in @user
			# 保存の成功をここで扱う。
			flash[:success] = "Welcome to the Sample App!"
			redirect_to @user
		else
			render 'new'
		end
	end

	private
	
	def user_params
		params.require(:user).permit(:name, :email, :password, :password_confirmation)
	end

	def correct_user
		@user = User.find(params[:id])
		redirect_to(root_url) unless current_user?(@user)
	end

	def admin_user
		redirect_to(root_url) unless current_user.admin?
	end
end