Here’s one that could have you scratching your head in puzzlement for a little while. In Rails 1.2.x you could do something like this in your controller:

class PostsController < ActionController::Base
  before_filter :do_filter
  
  # Controller code
  
  protected
    def do_filter
      # Filter logic goes here
      
      # Halt the filter chain
      false
    end
end

If the filter returned false then processing of the request would stop and you’d see a blank page in your browser.

Not so in Rails 2.0: thanks to changeset 7984 the filter chain is only halted if you render or redirect within your filter. If you really want to get similar behaviour to Rails 1.2.x you could always do this:

def do_filter
  # Filter logic goes here
  
  # Halt the filter chain
  head :bad_request
end

Although you will probably be more popular with your users if you display some kind of friendly error message!