Tôi vừa tạo ứng dụng đường ray mới trong Rails 3.1.1 và bố cục ứng dụng của tôi không được hiển thị trong trình duyệt. Thứ duy nhất được hiển thị là mã mà tôi đặt trong các khung nhìn (ví dụ: views/public/home.html.erb).Đường ray không hiển thị bố cục ứng dụng của tôi
Nó chỉ hiển thị những gì đang được dẫn đường qua <% = yield%>. Ví dụ, localhost: 3000/public/home là chỉ hiển thị này:
<h1>Homepage</h1>
<h2>Here we go.</h2>
<a href="/#">Visit the login page</a>
Dưới đây là những gì trong /layouts/application.html.erb tôi:
<!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>
Dưới đây là tuyến đường của tôi cũng như:
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
Dưới đây là những gì trong application_contoller.rb:
class ApplicationController < ActionController::Base
protect_from_forgery
end
Dưới đây là những gì trong public_controller.rb:
class PublicController < ActionController::Base
protect_from_forgery
def home
end
def secret
end
end
Dưới đây là những gì trong 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
Và đây là những gì trong 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
Ngoài ra, tôi đã bắt đầu thiết lập Ma thuật và hiển thị ứng dụng tại phiên/mới, nhưng không hiển thị trên trang chủ công khai của tôi. –
Đọc lại câu hỏi của bạn và cho tôi biết nếu bạn không nói "Huh?" :) Vui lòng hiển thị tệp 'views/layouts/application.html.erb' của bạn. Bạn đang sử dụng bố cục mặc định hay bạn chỉ định nó trong mỗi bộ điều khiển? – iwasrobbed
Đó là tổng số vô nghĩa. Xin lỗi vì điều đó. Tôi đã dọn dẹp câu hỏi và thêm tệp layout/application.html.erb của tôi. Tôi đang cố gắng sử dụng bố cục mặc định và chưa chỉ định bất kỳ bố cục nào trong bất kỳ trình điều khiển nào. –