我正在學習重構我的代碼,但我在重構session_controller時遇到了麻煩,這是我的應用程序中的問題。它違反了「tell do not ask」原則。我正在考慮提取一些邏輯到它自己的類,但不知道如何工作。這裏是來自控制器的代碼。在Ruby On Rails中重構sessions_controller
class SessionsController < ApplicationController
def create
admin = Admin.find_by(email: params[:sessions][:email])
if admin && admin.authenticate(params[:sessions][:password])
sign_in admin
redirect_to anasayfa_path
flash[:success] = 'Başarılı şekilde giriş yapıldı'
else
redirect_to root_path
flash[:error] = 'Giriş bilgilerinde bir hata var'
end
end
end
我將如何重構呢?我認爲此方法提取
admin && admin.authenticate(params[:sessions][:password])
,但是那會是最好的辦法?我會在哪裏把類,如果我這個提取?