仅在用户登录时显示页面?红宝石/设计

adp*_*adp 3 authentication ruby-on-rails devise

我正在构建一个带有rails的应用程序和用户身份验证我正在使用Devise.

我想知道如何限制访问某些页面,除非用户已登录.我猜我必须更改我的特定页面控制器上的代码,但我不知道如何.

此外,如果未经过身份验证的用户想要访问该页面,我该如何限制它?

非常感谢!

uda*_*day 7

您可以在页面上执行以下操作:

<% if user_signed_in? %>
  <div> show content here </div>
<%else %>
  <p>Please Sign Up or Sign In to view the content.</p>

  <h2><%= link_to "Sign up", new_user_registration_path%>

<% end %>
Run Code Online (Sandbox Code Playgroud)

希望能帮助到你!

或者before_action在控制器内部设置:

before_action :authenticate_user!

官方文档有更多的细节