我有一个由devise gem.where生成的用户的登录页面我从模型中删除了registerable只登录而不是注册。我还生成了一个admin,它为seed.rb文件中的用户提供了默认登录凭据.I在登录页面做了一些CSS工作。接下来,我为用户生成了一个员工页面,以便进一步处理。
我怀疑的是,我在登录页面中所做的样式部分也会出现在员工页面中。我不想这样,所以我在application.html.erb中写了一些条件
<% unless user_signed_in? %>
<%= render 'layouts/heading' %>
<% end %>
该方法在application.controller.rb
中定义def user_signed_in? %>
render :layouts => 'application'
end
我通过改变条件尝试了很多,但它仍然显示或显示错误。
答案 0 :(得分:0)
你说你正在使用&#34;设备gem&#34;,但是既然你在谈论身份验证,我认为你的意思是&#34;设计&#34;?
user_signed_in? method是一个助手,应该由devise自动提供,你应该可以在你的视图中使用它。您不应该在应用程序控制器中定义它。
您可能希望确保&#34; before_filter:authenticate_user!&#34;在相关控制器中(如果您只希望这适用于某些方法,则可以使用&#34;:only&#34;选项。)
很难提供更多信息,因为您还没有说出您遇到的错误。我假设您在&#34; user_signed_in?&#34;的定义上遇到某种语法错误?方法,因为你在行尾有一个无效的&#34;%&gt;&#34;我猜你是从ERB文件中复制并粘贴的。