我正在学习重构我的代码,但我在重构我的应用程序中的 session_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])
从这个方法,但那是最好的方法吗?如果我提取这个,我会把类放在哪里?