Hello,

I have a piece of controller code that needs to be dried up. The part
between the big comment blocks (####) is the only (!) part of the code that
needs to change for various methods.

I couldn't figure it out because if I would wrap this code in a Proc or
lambda, the render :nothing => true statement would become void because it
doesn't run in the context of the controller anymore.

---

def authenticate
    if request.method.eql?(:post)
      request = convert_xml_to_object(:request, params[:xml])
      # Prepare default response
      response = default_response
      # Get the account
      account = Account.find_by_email request.username
      # Check for API credentials
      if check_api_credentials(account, request, response)
        # _ 12221 baz bar
        good = false
        # If we find something good, let's actually do something!

 ########################################################################
        good = account.authenticate :password => request.password, :source
=> request.source
        # End of block

 ########################################################################
        # This sound a bit .. Polish :]
        if good
          set_response_to_100(response)
        end
      end
      # _
      respond_to do |format|
        format.xml { render :xml => response.to_xml }
      end
    else
      render :nothing => true
    end
  end

-- 
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Talk" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-talk?hl=en.

Reply via email to