For example, I’m placing the partial <%= render "layouts/location" %> in views all over the site. I need a controller for the layout (I tried layouts_controller.rb ) so I could do
def _location
@city = request.location.city
@state = request.location.state
end
The partial contains the code <%= @city %>, <%= @state %>
This is all effectively, supposed to display the city and state of the visitor on whatever page the partial is rendered on.
When I do this however, and push to heroku and migrate the database, I’m served the error:
An error occurred in the application and your page could not be served. Please try again in a few moments.
If you are the application owner, check your logs for details.
So the question is, how do I define a function for a partial?
You could do this in a before filter in your application controller like so:
The name of the method needs to match the symbol in the
before_filtercall, but other than that, you can call the method whatever you want. The method must be in the ApplicationController class though.Clarification: This will get called before every request in your application and set these two instance variables for you, so in every view, you will always and automatically have access to @city and @state.