如何检查用户是否已登录rails devise?

Cha*_*kar 9 ruby-on-rails devise

我正在尝试根据用户身份验证向我的rails应用程序添加标头.所以我在这里检查,如果用户已登录或登录,然后添加登录/注销链接基于此.

但我得到错误:

application.html.erb:16: syntax error, unexpected tSYMBEG, expecting keyword_do or '{' or '(' ...roy_user_session_path, method :delete );@output_buffer.safe_
Run Code Online (Sandbox Code Playgroud)

这是我尝试过的:

<% if user_signed_in? do %> 
    <%= link_to "Log out", destroy_user_session_path, method :delete %>
<% else %>
    <%= link_to "login", new_user_session_path %>
<% end %>
Run Code Online (Sandbox Code Playgroud)

我该如何解决这个问题?

Raj*_*ngh 18

首先do从这一行删除,你不需要那样做

<% if user_signed_in? %>
Run Code Online (Sandbox Code Playgroud)

其次添加:之后method,它是一个关键值对

<%= link_to "Log out", destroy_user_session_path, method: :delete %>
Run Code Online (Sandbox Code Playgroud)

希望有所帮助!


Ani*_*ari 6

您在方法删除中犯了语法错误。复制下面的代码

<% if user_signed_in? %>
    <%= link_to "Log out", destroy_user_session_path, :method=>'delete'%>
<% else %>
    <%= link_to "login", new_user_session_path %>
<% end %>
Run Code Online (Sandbox Code Playgroud)