我正在开发一个Rails应用程序,我与另一个Jr.开发人员共同编码。
我想在应用程序中添加静态主页和静态帮助页面。
按照Hartl的说明(https://www.railstutorial.org/book/static_pages#cha-static_pages),我在应用程序中添加了一个静态页面控制器,用于主页和帮助页面。当我导航到static_pages / home时,我收到此错误:
NameError in Static_pages#home
Showing /vagrant/src/statuscaster2/app/views/layouts/application.html.erb where line #34 raised:
undefined local variable or method `devise_mapping' for #<#<Class:0xb9d6860c>:0xb9d7ad34>
Extracted source (around line #34):
31: <% if user_signed_in? %>
32: <%= link_to 'Sign Out', destroy_user_session_path, :method => :delete %>
33: <% else %>
34: <%- if devise_mapping.registerable? && controller_name != 'registrations' %>
35: <%= link_to "Sign up", new_registration_path(resource_name) %>
36: <% end -%>
37: <% end %>
设计不开心。第31行询问应用程序访问者是否已登录并尝试在注册时将用户注销。第33行向访问者发送了注册的机会。
我不知道如何处理这个问题,并感谢SO社区的帮助。
答案 0 :(得分:0)
在froderik的帮助下(见有问题的评论)我已经弄明白了。
我正在考虑错误的方式,试图责怪设计,当它只是按照它被告知要做的事情。我的新静态页面默认使用应用程序布局。这加载了我的应用程序的导航栏。该导航栏充满了设计认证逻辑。
通过为静态页面创建新布局,然后告诉我的静态页面控制器使用该布局,我能够解决我的问题。
这篇文章的第一个答案提供了额外/相关的信息。