def method_missing(method_name, *args, &block) 
      if method_name.to_s =~ /_(path|url)$/
        # Delegate all named routes to the controller
        controller.send(method_name, *args)
      elsif presented_attribute?(method_name)
        delegate_message(method_name, *args, &block)
      else
        super
      end
    end
def method_missing(method_name, *args, &block) 
      if method_name.to_s =~ /_(path|url)$/
        # Delegate all named routes to the controller
        controller.send(method_name, *args)
      elsif presented_attribute?(method_name)
        delegate_message(method_name, *args, &block)
      else
        super
      end
    end
Accepts arguments in two forms. If you had a CommentPresenter that presented a Comment model and a Post model, you would write the follwoing:

 1. CommentPresenter.new(:comment => Comment.new, :post => @post)
 2. CommentPresenter.new(Comment.new, @post) - it will introspect on the model's class; the order is not important.

 You can even mix the two:
   CommentPresenter.new(Comment.new, :post => @post)