The error:
NoMethodError (undefined method `generate_drawer_data’ for #):
caused when the method call is in the block:
respond_to do |format|
format.js do
render :update do |page|
generate_drawer_data(page)
but when the method is outside the block, no runtime errors:
generate_drawer_data()
respond_to do |format|
format.js do
render :update do |page|
the method, near the bottom of the controller
def generate_drawer_data(page = false)
... page_replaces
end
So… why am I getting this behavior?
I’m using ruby on rails 2.3.8
I believe that block passed to
render :updateis more like a view, so it has access to controller’s instance variable and helpers. Try define this method as helper method usinghelper_method :generate_drawer_data.