Forum: Ruby on Rails Disabling layout in action disables rendering of action data

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
Da55727b189e6a3ddee2ec69f68e0ffb?d=identicon&s=25 Sj Tib (sktib)
on 2009-04-14 00:59
Folks,

I have a base layout (views/layouts/base.erb) included from
ApplicationController -- layout 'base'

This seems to work fine and all controllers automatically include that
layout. However I am now trying to disable layout for certain actions
when I do a GET on them. For example I try to GET some json data using
http://localhost:3001/admin/someaction/1.json  (from within my view page
to load some json data dynamically)

The "someaction" action in admin controller is something like below

def someaction
    respond_to do |format|
      format.html {
      }
      format.json {
        render(:layout => false)  <--- Doing this disables sending of
@somevar through the view
        @somevar = compute_contents_of_this_var_in_json
     }
     logger.info("@somevar = " + @somevar)
   end
end

In views/admin/someaction.json.erb I have a single line as below
<%= @somevar %>

This basically sends out the json data in @somevar to the browser.

The problem I am running into is that when I set rendering of layout to
false in someaction, no data gets sent out (@somevar has the needed data
- I see that in the logs) and when I don't turn off rendering of layout,
I get all the HTML from my layout (as I would expect) that I don't want.

I tried removing the layout statement from ApplicationController and
then without having to turn off layout rendering in someaction, it sends
out the right json data without the HTML.

I don't understand why turning off rendering of layout in someaction
disables sending of the json data in the @somevar variable. Sounds like
I am missing something basic but not sure what it is. I am on 2.2.2

Thanks for your help.
-S
This topic is locked and can not be replied to.