Skip to content

Instantly share code, notes, and snippets.

@faun
Forked from cored/users_controller.rb
Created September 20, 2013 22:30
Show Gist options
  • Save faun/6644798 to your computer and use it in GitHub Desktop.
Save faun/6644798 to your computer and use it in GitHub Desktop.
class UsersController < ApplicationController
def create
@user = User.new params[:user]
return render 'new' unless @user.save
flash[:notice] = "The user was created succesfully"
redirect_to :index
end
end
class UsersController < ApplicationController
def create
CreateUser.new(User).call(
params[:user],
on_success: ->(user) do
flash[:notice] ="The user was created successfully"
redirect_to :index
end,
on_failure: ->(user) do
render 'new'
end
end
end
class CreateUser
def initialize(users_repository)
@users_repository = users_repository
end
def call(attributes: {}, on_success: nil, on_failure: nil)
user = @users_repository.new attributes
return on_faiulre[user] unless user.save
on_success[user]
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment