私はこれについていくつかの類似の記事を見ましたが、私の問題を解決していないようです。logged_in_userログインしているユーザーのリンク先ページをバイパスしていません
問題 単に機能しません。何もエラーになりません。何も評価されず、他のもののためになぜか分かりません。
def show
if logged_in?
# raise #I raise an error here and nothing happens on the web page. Just to confirm this isn't working for my sanity.
redirect_to recipes_url
else
render template: "welcome/#{params[:welcome]}"
end
end
機能LOGGED_IN:ここ
は私のウェルカムコントローラの定義とは?私/helpers/sessions_helper.rbに定義されています。ここでは
def logged_in?
!current_user.nil?
end
CURRENT_USERです:
def current_user
if (user_id = session[:user_id])
@current_user ||= User.find_by(id: user_id)
elsif (user_id = cookies.signed[:user_id])
# raise #The test still pass, so this branch is currently untested.
user = User.find_by(id: user_id)
if user && user.authenticated?(cookies[:remember_token])
log_in user
@current_user = user
end
end
そして、私のルートは以下のとおりです。
get 'welcome/:welcome' => 'welcome#show'
root :to => 'welcome#home'
しないのはなぜこの作品?私がログインしているかどうかに関係なく、ウェルカムページにとどまります。私はlogged_inを知っていますか?これに基づいて動的なページに他のリンクがあるため、正しく評価されています。
編集:本当に変わったのはlogged_inですか?私の見解ではこのコントローラーでは動作しません。
ここには、アプリケーションレイアウトビューのナビゲーションのスニペットがあります。
<% if logged_in? %>
<li><%= link_to "Profile", current_user %></li>
<li><%= link_to "Log out", logout_path, method: "delete" %></li>
<% else %>
<li><%= link_to "Browse recipes", recipes_path %></li>
<li><%= link_to "Log in", login_path %></li>
<% end %>
deviseを使用していますか? – 7urkm3n