我的网站的每个页面都有一个导航栏。导航栏中有一个链接,如下所示:
<%= 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)如果单击链接且用户未签名,则会重定向到登录页面。
非常感谢帮助!
答案 0 :(得分: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 %>
答案 1 :(得分:0)
如果你正在使用devise gem那么
<% 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 %>