2016-04-30 64 views
4

在我的应用程序中,用户直接登录才能进入主站点。Ruby on Rails,如何停止登录页面上的导航栏呈现?

我在整个站点渲染一个导航栏,但我不想让导航栏呈现在登录页面上。我不想将导航栏代码复制并粘贴到所有视图中,以防止出现这种情况。

如果有一种方法,我可以停止显示在登录屏幕上的导航栏而不必删除部分内容,这样会更干净。

如何限制应用程序中某个页面的局部视图?

我正在使用Devise。

我不认为代码是需要在这篇文章中,但很乐意提供,如果有所帮助。谢谢。

回答

4

如果您正在使用Devise并且您处于登录页面,那么没有登录的用户。然后你可以使用Devise助手之一来实现你想要的。例如:

if (not user_signed_in?) then 
    render 'your_partial_with_the_navbar' 
end 

这里唯一的一点是,在没有用户登录的任何页面中,partial都不会呈现。

你也可以自己创建一个更好的帮手,结合user_signed_in?来自Devise的与您的其他条件。

+2

谢谢,明白了。我在应用程序布局文件<%if(user_signed_in?)then% <% end %>这样工作正常。无论如何,所有用户都必须登录,所以应该没问题。再次感谢。 – Co2

+0

好,它帮助。并感谢您接受答案。 –