ApplicationController Plugin

I’ve created a plugin to generate error pages with a single function
call. The basic idea is that in your action you could call
error_forbidden and an error page would be rendered with the HTTP
status code 402. This works great so far when called from within an
action, but when I want to add the call to the “verfy” line, things

verify :method => :post, :only =>
[ :create, :update, :destroy ], :render => { :text => error_invalid }

Generates the error message: “undefined method `error_invalid’ for

How can I make the methods visible to the controller outside the
actions? For some reason I haven’t been able to make it work for
both. Here’s a snippet from the plugin:


module ErrorPagePlugin

The user is forbidden to perform this action

def error_forbidden(options={})
options[:title] = options[:title] || “You do not have access to
perform that action.”
options[:message] = options[:message] || “Make sure you’re logged in
and have access to this feature.”
options[:template] = “errors/forbidden.rhtml”

error_page(403, options)


Invalid form method (get, put, delete, post)

def error_invalid(options={})
options[:title] = options[:title] || “Invalid Action”
options[:message] = options[:message] || “You have just tried to
perform an action that is invalid for that item.”
options[:template] = “errors/invalid.rhtml”

error_page(501, options)


Generate error page

def error_page(status=200, options={})
@status = status
@title = options[:title]
@message = options[:message]

@override_h1 = true
@page_id = "pg_error"

tmpl = options[:template] || "errors/generic.rhtml"
render :status => status, :template => tmpl