Create a gist now

Instantly share code, notes, and snippets.

Custom Error Messages in Ruby
class Group
module Error
class Standard < StandardError; end
class AlreadyAMember < Standard
def message
"You are already a member of this group."
end
end
class NotPermittedToJoin < Standard
def message
"You don't have the proper permissions to join this group."
end
end
end
def join user
raise Error::NotPermittedToJoin unless self.permitted?(user)
raise Error::AlreadyAMember if self.member?(user)
self.members.create :user => user
end
end
class GroupsController < ApplicationController
def join
@group = Group.find(params[:id])
@group.join current_user
flash[:notice] = "Welcome to the Group!"
redirect_to @group
rescue Group::Error::Standard => exception
flash[:error] = exception.message
render :action => 'request'
end
end
@panthomakos
Owner

An improved and more OOP approach to this example can be found here.

@aruprakshit

I liked this approach... +1

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment