I just created a new rails app in Rails 3.1.1, and my application layout is not being rendered in the browser. The only thing that is rendered is the code that I put in the view
I just ran into this same problem myself and the problem is just a simple mistake.
Your controller PublicController is subclassing "ActionController::Base". Controllers other than your ApplicationController need to subclass from ApplicationController in order for their views to be rendered within the application.html.erb layout
If you change
PublicController < ActionController::Base
to
PublicController < ApplicationController
it should work.
Ran into the same problem with one final wrinkle: I was overriding initialize in the subclassed controller. Make sure to call 'super' first thing:
def initialize
super
@some_client = SomeClient.new
end