session nil in view

I have to provide a link based on a value stored in session object but
getting the session object nil in the view.

Following is the error message:

ActionView::TemplateError: You have a nil object when you didn't
expect it!
You might have expected an instance of ActiveRecord::Base.
The error occurred while evaluating nil.[]
    On line #13 of admin/details/new.rhtml

    10: <% if params["for_entity"] %>
    11: <%= submit_tag(t("quick_submit"), :name => "quick_commit")%> |
    12: <%end%>
    13: <%=link_to t("cancel"),session["return-to"] %>
    14: <% end -%>
    15:
    16: <script type="text/javascript">

Can anyone guide me how the session object is fine in the controller
and the very next instant its nil in the view?

Regards,
Mohsin

The session object is not accessible in a view, it is only available
in the controller layer. But you can save the session value in an
instance variable in your controller and reference that instance
variable in your view instead.

But that piece of code works fine when I browse through my browser in
the development mode. This only happens when I run the tests.

The session object is not accessible in a view, it is only available
in the controller layer. But you can save the session value in an
instance variable in your controller and reference that instance
variable in your view instead.

But that piece of code works fine when I browse through my browser in
the development mode. This only happens when I run the tests.

Would have been useful if that's what you had said? I recall a recent discusscion on rails core where it emerged that normally the session is a HashWithIndifferentAccess (so session["return-to"] and session[:return-to] are the same thing, but in tests it was just a regular hash( and so only session[:return-to] worked). Use session[:return-to] instead of the string form and you should be ok.

Fred

>> The session object is not accessible in a view, it is only available
>> in the controller layer. But you can save the session value in an
>> instance variable in your controller and reference that instance
>> variable in your view instead.

> But that piece of code works fine when I browse through my browser in
> the development mode. This only happens when I run the tests.

Would have been useful if that's what you had said? I recall a recent
discusscion on rails core where it emerged that normally the session
is a HashWithIndifferentAccess (so session["return-to"] and
session[:return-to] are the same thing, but in tests it was just a
regular hash( and so only session[:return-to] worked). Use
session[:return-to] instead of the string form and you should be ok.

Fred

Thank you very much!