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 |
This comment has been minimized.
This comment has been minimized.
I liked this approach... +1 |
This comment has been minimized.
This comment has been minimized.
+1 Ex: raise Error::AlreadyAMember.new(user) And then in the Error class def initialize(response)
@response = response
end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
This comment has been minimized.
An improved and more OOP approach to this example can be found here.