10.4.1 절을 통해 샘플 응용 프로그램 자습서를 완료했습니다. 내 검사는 모두 초록색입니다. 10.4.1을 완료하기 전에 모든 것이 예상대로 작동했습니다. 그러나 _user.html.erb 부분을 편집하여 삭제 링크를 추가하면 로그인 기능이 작동하지 않습니다. 기존 사용자에 대한 암호는 인식되지 않습니다. 새 사용자를 만들면 가입 프로세스가 작동합니다. 그러면 새 사용자의 이메일과 비밀번호로 로그 아웃하고 로그인 할 수 있지만 이전에 생성 된 계정에는 액세스 할 수 없습니다. 이것에 대해 무엇을해야할지 모르겠습니다.railstutorial.org 샘플 응용 프로그램 로그인 암호가 인식되지 않습니다.
_user.html.erb :
<li>
<%= gravatar_for user, size: 50 %>
<%= link_to user.name, user %>
<% if current_user.admin? && !current_user?(user) %>
| <%= link_to 'delete', user, method: :delete,
data: { confirm: 'You sure?' } %>
<% end %>
</li>
users_controller.rb 레일 서버 콘솔에서
class UsersController < ApplicationController
before_action :logged_in_user, only: [:index, :edit, :update]
before_action :correct_user, only: [:edit, :update]
def index
@users = User.paginate(page: params[:page])
end
def show
@user = User.find(params[:id])
end
def new
@user = User.new
end
def create
@user = User.new(user_params)
if @user.save
log_in @user
flash[:success] = "Welcome to the Sample App!"
redirect_to @user
else
render 'new'
end
end
def edit
@user= User.find(params[:id])
end
def update
#@user = User.find(params[:id])
if @user.update_attributes(user_params)
#sign_in @user
flash[:success] = "Profile updated"
redirect_to @user
else
render 'edit'
end
end
def destroy
User.find(params[:id]).destroy
flash[:success] = "User destroyed"
redirect_to users_path
end
private
def user_params
params.require(:user).permit(:name, :email, :password, :password_confirmation)
end
# Before filters
# Confirms a logged-in user
def logged_in_user
unless logged_in?
store_location
flash[:danger] = "Please log in."
redirect_to login_url
end
end
# Confirms the correct user.
def correct_user
@user = User.find(params[:id])
redirect_to(root_url) unless current_user?(@user)
end
end
오류 메시지.