0

我有一个导航栏,出现在我网站的每个页面上。导航栏中有一个链接,如下所示:

<%= link_to 'Publish' , new_user_comic_title_path(user_id: current_user.id) %>

我正在使用 DEVISE gem。每个用户有很多Comic_titles,这就是为什么我有new_user_comic_title_path。问题是,当用户退出时,current_user.id= nil。错误如下:

Called id for nil, which would mistakenly be 4 -- if you really wanted the id of nil, use object_id

我希望(1)在不引发此错误的情况下呈现页面,以及(2)如果单击链接并且用户未对其进行签名,它将重定向到登录页面。

真的很感谢帮助!

4

2 回答 2

0
<% if signed_in? %>
  <%= link_to 'Publish' , new_user_comic_title_path(user_id: current_user.id) %>
<% else %>
  <%= link_to 'Publish' , sign_in_path %>
<% end %>

或者

<%= link_to 'Publish' , signed_in? ? new_user_comic_title_path(user_id: current_user.id) : sign_in_path %>
于 2013-09-12T00:33:38.623 回答
0

如果您使用的是设计宝石,那么

<% if user_signed_in? %>
  <%= link_to 'Publish' , new_user_comic_title_path(user_id: current_user.id) %>
<% else %>
  <%= link_to 'Publish' , new_session_path(:user) %>
<% end %>
于 2013-09-13T04:51:32.930 回答