0

Web サイトのすべてのページに表示されるナビゲーション バーがあります。ナビゲーションバーに次のようなリンクがあります。

<%= 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

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 %>
于 2013-09-13T04:51:32.930 に答える
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 に答える