Rails 不会呈现我的视图
Rails Won't Render My View
我 运行 设计自定义视图,我的 login
页面之前呈现完美,但我只是将模型名称从 human
更改为 user
,重命名了控制器和视图,但它只是拒绝呈现我的视图。
我没有收到错误,我的布局呈现完美,但由于某种原因它没有产生正文。
代码
这是我的 routes.rb
Users
:
## devise controllers for users
devise_for :user, controllers: {
confirmations: 'user/confirmations',
passwords: 'user/passwords',
registrations: 'user/registrations',
sessions: 'user/sessions',
unlocks: 'user/unlocks',
# commenting the below because omniauth gem isn't installed
# omniauth_callbacks: 'user/omniauth_callbacks'
}, skip: [:sessions]
## custom routes for users
as :user do
get 'login' => 'user/sessions#new', :as => :new_user_session
post 'login' => 'user/sessions#create', :as => :user_session
delete 'logout' => 'user/sessions#destroy', :as => :destroy_user_session
get 'register' => 'user/registrations#new', as: :register
end
这是我的 sessions_controller
由设计生成的:
class User::SessionsController < Devise::SessionsController
...
# GET /resource/sign_in
def new
super
end
...
end
这是我的观点:
<%= render layout: 'layouts/shared/left_logo_panel' do %>
<%= form_for(resource, html: {class: 'form'}, as: resource_name, url: session_path(resource_name)) do |f| %>
<div class="field form-group">
<%= f.label :email %><br />
<%= f.email_field :email, class:'form-control', autofocus: true %>
</div>
<div class="field form-group">
<%= f.label :password %><br />
<%= f.password_field :password, class:'form-control', autocomplete: "off" %>
</div>
<% if devise_mapping.rememberable? -%>
<div class="field form-group">
<%= f.check_box :remember_me %>
<%= f.label :remember_me %>
</div>
<% end -%>
<div class="actions">
<%= f.submit "Log in", class:'btn btn-default' %>
</div>
<% end %>
<%= render "devise/shared/links" %>
<% end %>
日志
Started GET "/login" for 127.0.0.1 at 2016-04-21 04:48:13 -0700
Processing by User::SessionsController#new as HTML
Rendered devise/shared/_links.html.erb (5.8ms)
Rendered layouts/shared/_left_logo_panel.html.erb (9.4ms)
Rendered user/sessions/new.html.erb within layouts/application (9.8ms)
Rendered layouts/_shim.html.erb (0.0ms)
Rendered layouts/_header.html.erb (0.3ms)
Rendered layouts/_footer.html.erb (0.0ms)
Rendered layouts/_ga.html.erb (0.1ms)
Completed 200 OK in 41ms (Views: 39.7ms | ActiveRecord: 0.0ms)
在我的布局中,我将 yield
替换为 yield :body
,然后忘记了。好吧,我是个傻瓜。检查你的布局,伙计们!
我 运行 设计自定义视图,我的 login
页面之前呈现完美,但我只是将模型名称从 human
更改为 user
,重命名了控制器和视图,但它只是拒绝呈现我的视图。
我没有收到错误,我的布局呈现完美,但由于某种原因它没有产生正文。
代码
这是我的 routes.rb
Users
:
## devise controllers for users
devise_for :user, controllers: {
confirmations: 'user/confirmations',
passwords: 'user/passwords',
registrations: 'user/registrations',
sessions: 'user/sessions',
unlocks: 'user/unlocks',
# commenting the below because omniauth gem isn't installed
# omniauth_callbacks: 'user/omniauth_callbacks'
}, skip: [:sessions]
## custom routes for users
as :user do
get 'login' => 'user/sessions#new', :as => :new_user_session
post 'login' => 'user/sessions#create', :as => :user_session
delete 'logout' => 'user/sessions#destroy', :as => :destroy_user_session
get 'register' => 'user/registrations#new', as: :register
end
这是我的 sessions_controller
由设计生成的:
class User::SessionsController < Devise::SessionsController
...
# GET /resource/sign_in
def new
super
end
...
end
这是我的观点:
<%= render layout: 'layouts/shared/left_logo_panel' do %>
<%= form_for(resource, html: {class: 'form'}, as: resource_name, url: session_path(resource_name)) do |f| %>
<div class="field form-group">
<%= f.label :email %><br />
<%= f.email_field :email, class:'form-control', autofocus: true %>
</div>
<div class="field form-group">
<%= f.label :password %><br />
<%= f.password_field :password, class:'form-control', autocomplete: "off" %>
</div>
<% if devise_mapping.rememberable? -%>
<div class="field form-group">
<%= f.check_box :remember_me %>
<%= f.label :remember_me %>
</div>
<% end -%>
<div class="actions">
<%= f.submit "Log in", class:'btn btn-default' %>
</div>
<% end %>
<%= render "devise/shared/links" %>
<% end %>
日志
Started GET "/login" for 127.0.0.1 at 2016-04-21 04:48:13 -0700
Processing by User::SessionsController#new as HTML
Rendered devise/shared/_links.html.erb (5.8ms)
Rendered layouts/shared/_left_logo_panel.html.erb (9.4ms)
Rendered user/sessions/new.html.erb within layouts/application (9.8ms)
Rendered layouts/_shim.html.erb (0.0ms)
Rendered layouts/_header.html.erb (0.3ms)
Rendered layouts/_footer.html.erb (0.0ms)
Rendered layouts/_ga.html.erb (0.1ms)
Completed 200 OK in 41ms (Views: 39.7ms | ActiveRecord: 0.0ms)
在我的布局中,我将 yield
替换为 yield :body
,然后忘记了。好吧,我是个傻瓜。检查你的布局,伙计们!