Rails没有呈现我的应用程序布局
我刚刚在Rails 3.1.1中创建了一个新的rails应用程序,我的应用程序布局没有在浏览器中呈现。 唯一呈现的是我放在视图中的代码(例如views / public / home.html.erb)。
它只会通过呈现正在传输的内容。 例如,localhost:3000 / public / home仅显示以下内容:
Homepage
Here we go.
Visit the login page
这是我的/layouts/application.html.erb中的内容:
My App - Logged in as .
-
-
-
"flash#{name}" %> test!
这也是我的路线:
root :to => "public#home" match "/secret" => "public#secret" get "logout" => "sessions#destroy", :as => "logout" get "login" => "sessions#new", :as => "login" get "signup" => "users#new", :as => "signup" resources :users resources :sessions
这是application_contoller.rb中的内容:
class ApplicationController < ActionController::Base protect_from_forgery end
这是public_controller.rb中的内容:
class PublicController < ActionController::Base protect_from_forgery def home end def secret end end
这是sessions_contoller.rb中的内容:
class SessionsController "Logged in!" else flash.now.alert = "Email or password was invalid" render :new end end def destroy logout redirect_to root_path, :notice => "Logged out" end end
以下是users_controller.rb中的内容:
class UsersController "Signed up!" else render :new end end end
我自己也遇到了同样的问题,问题只是一个简单的错误。
您的控制器PublicController是子类“ActionController :: Base”。 ApplicationController以外的控制器需要从ApplicationControllerinheritance,以便在application.html.erb布局中呈现它们的视图
如果你改变了
PublicController < ActionController::Base
至
PublicController < ApplicationController
它应该工作。
最后一个皱纹遇到了同样的问题:我在子类控制器中重写了初始化。 一定要先调用’超级’:
def initialize super @some_client = SomeClient.new end