rajaramyadhav
rajaramyadhav

Reputation: 347

Visibility of session variable in rails

Can someone explain me the visibility of the session variable in Rails. I mean across what classes will the session variables be available. I am able to access the session variable in the controller but if I create a standalone class, I am not able to access the session hash. Also let me know what is the best way to access the session variable in a standalone class. Can someone help me understand this session concept?? Any pointers or reading related to this will be helpful.

Thanks

Upvotes: 2

Views: 2178

Answers (1)

Andrew Marshall
Andrew Marshall

Reputation: 96934

You can only access session data in the controllers, this is because it's the only place it should be accessible per MVC. The controller literally controls the current session and request, and then retrieves and sends the necessary information to the model and view.

If you need to access it elsewhere, pass the needed data as a parameter to the desired method in a call from your controller.

Here are some resources to learn more about the Model-View-Controller design pattern:

The whole point of using MVC is to keep the various different parts of your application separated and isolated. This allows you to have more organized code that is easier to modify. While there are ways to get around Rails' strict MVC implementation and use things where they wouldn't conventionally be used, this is advised against. The conventions are there for a reason, if you're thinking of breaking take a step back and think of how to make it work without doing so and you'll end up having better code.

Upvotes: 4

Related Questions