Skip to content

Instantly share code, notes, and snippets.

@davelnewton
Forked from cored/users_controller.rb
Created September 18, 2013 15:25
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save davelnewton/6610817 to your computer and use it in GitHub Desktop.
Save davelnewton/6610817 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