我剛剛在Rails 3.1.1中創建了一個新的Rails應用程序,並且我的應用程序佈局未在瀏覽器中呈現。唯一呈現的是我放入視圖中的代碼(例如views/public/home.html.erb)。Rails沒有呈現我的應用程序佈局
它只是渲染通過<%= yield%>傳送的內容。例如,本地主機:3000 /大衆/ home是隻顯示此:
<h1>Homepage</h1>
<h2>Here we go.</h2>
<a href="/#">Visit the login page</a>
下面是在我的/layouts/application.html.erb:
<!DOCTYPE html>
<html>
<head>
<title>My App</title>
<%= stylesheet_link_tag "application" %>
<%= javascript_include_tag "application" %>
<%= csrf_meta_tags %>
</head>
<body>
<ul class="user_nav">
<% if current_user %>
<li>
Logged in as <%= current_user.email %>.
</li>
<li>
<%= link_to "Log out", logout_path %>
</li>
<% else %>
<li>
<%= link_to "Sign up", signup_path %>
</li>
<li>
<%= link_to "Log in", login_path %>
</li>
<% end %>
</ul>
<% flash.each do |name, msg| %>
<%= content_tag :div, msg, :id => "flash#{name}" %>
<% end %>
<%= yield %>
<h1>test!</h1>
</body>
</html>
這裏是我的路線以及:
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 < ApplicationController
def new
end
def create
user = login(params[:email], params[:password], params[:remember_me])
if user
redirect_back_or_to root_path, :notice => "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 < ApplicationController
def new
@user = User.new
end
def create
@user = User.new(params[:user])
if @user.save
redirect_to root_path, :notice => "Signed up!"
else
render :new
end
end
end
另外,我已經開始設置巫術了,它會在session/new中呈現應用程序,但不會在我的公共#home動作中呈現。 – 2012-01-14 23:50:39
再次閱讀您的問題,如果您不說,請告訴我,「嗯?」 :)請顯示你的'views/layouts/application.html.erb'文件。您是使用默認佈局還是在每個控制器中指定它? – iwasrobbed 2012-01-15 00:08:03
這是完全亂碼。對於那個很抱歉。我清理了這個問題並添加了我的layouts/application.html.erb文件。我試圖使用默認佈局,並沒有在任何控制器中指定任何佈局。 – 2012-01-15 00:22:24