Undefined method "redirect_to" in before_filter

Code sample:

class SomeController < ApplicationController
before_filter do |c|
add_crumb "Blah", "/blah" #breadcrumbs plugin
redirect_to :controller => "foo", :action => "bar" unless c.send

# Rest of the controller...


def has_package?
# A bunch of logic work to check to make sure
# somebody's session contains certain variables
# returns ONLY true or false.

The problem I'm having is that I'm getting "undefined method" errors
for redirect_to. This confuses me since SomeController inherits from
ApplicationController which inherits from ActionController::Base. Any
idea what's causing this problem? I'm thinking this is a scope issue
somehow, but I'm not sure why it's failing like this.


One thing I forgot to mention. I've tweaked it so that I CAN get it
to work by calling the redirect_to method while inside has_package? -
so basically it looks like this:

def has_package?
# if conditions
redirect_to :controller => "foo", :action => "bar"
# else
redirect_to :controller => "foo", :action => "bar"
# end

So before_filter is calling this method which CAN access redirect_to
as inherited from ActionController::Base. I'm just confused as to why
I have some obvious inheritance issues here.

with a before_filter using the block syntax self is the SomeController
class itself, but redirect_to is an instance method. Much as you have
to call your has_package method on the controller instance that is
yielded to the block you must also call redirect_to on that object.


So then would the syntax be:

c.redirect_to ...


Thanks Fred - for the record, you're the man :wink:

So then would the syntax be:

c.redirect_to ...

Yup (unless the method was protected/private in which case you could
use send, but i don;t think it is)