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
break:
verify :method => :post, :only =>
[ :create, :update, :destroy ], :render => { :text => error_invalid }
Generates the error message: “undefined method `error_invalid’ for
EventsController:Class”
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:
ErrorPage
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)
end
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)
end
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
end
end
Thanks,
Jeremy