# Getting access to request.env in a model observer?

**URL:** <https://www.ruby-forum.com/t/getting-access-to-request-env-in-a-model-observer/143372>\
**Category:** Rails\
**Created:** [July 17, 2008, 8:03pm UTC](https://www.ruby-forum.com/t/getting-access-to-request-env-in-a-model-observer/143372 "2008-07-17T20:03:39Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![HSWade\_M](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/h/e19adc/32.png) [@HSWade\_M](https://www.ruby-forum.com/u/HSWade_M)\
**Post date:** [July 17, 2008, 8:03pm UTC](https://www.ruby-forum.com/t/getting-access-to-request-env-in-a-model-observer/143372/1 "2008-07-17T20:03:39Z")

</div>

Does anyone know how I would get access to the request.env object  
within a model observer? I’m using restful\_authentication to send  
email, and need to include some of that request data in there.

I have it working with normal ActionMailer stuff, but can’t figure out  
how to do it in an observer.

Thanks,  
Wade

---

<div class="post-metadata">

**Author:** ![HSWade\_M](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/h/e19adc/32.png) [@HSWade\_M](https://www.ruby-forum.com/u/HSWade_M)\
**Post date:** [July 17, 2008, 8:09pm UTC](https://www.ruby-forum.com/t/getting-access-to-request-env-in-a-model-observer/143372/2 "2008-07-17T20:09:31Z")

</div>

You can’t. Request information is related to controllers and views and  
should not be made available to models.

Look at Restful authentication and see how it handles that - they use  
attr\_accessor to store data.

This is a really dumbed-down approach but you could do this:

class ModelObserved \< AR::Base

attr\_accessor :request\_info

# rest of your code

end

class ModelObservedObserver \< AR::Observer

observes ModelObserved

def after\_save(record)  
unless record.request\_info.blank?  
# do stuff with this  
end  
end

end

Then in your controller you just need to make sure you pass the  
request.env  
stuff to the model.

The other way to do it is to use cache\_sweepers instead of observers.  
Acts\_as\_audited does that so you might learn something from that code.

On Thu, Jul 17, 2008 at 1:03 PM, H. Wade M. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)

---

<div class="post-metadata">

**Author:** ![HSWade\_M](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/h/e19adc/32.png) [@HSWade\_M](https://www.ruby-forum.com/u/HSWade_M)\
**Post date:** [July 17, 2008, 9:13pm UTC](https://www.ruby-forum.com/t/getting-access-to-request-env-in-a-model-observer/143372/3 "2008-07-17T21:13:04Z")

</div>

Thanks - I used an attr\_accessor and it seems to do the trick!

–Wade
