Commit c70bb91
Changed files (3)
app
controllers
models
services
config
app/controllers/logins_controller.rb
@@ -4,7 +4,7 @@ class LoginsController < ApplicationController
end
def create
- if User.find_by(email: params[:email]).authenticate(params[:password])
+ if LoginCommand.new.run(params)
redirect_to dashboard_path
else
flash[:error] = I18n.translate(:invalid_credentials)
app/models/services/login_command.rb
@@ -0,0 +1,9 @@
+class LoginCommand
+ def initialize(users = User)
+ @users = users
+ end
+
+ def run(params)
+ @users.find_by(email: params[:email]).authenticate(params[:password])
+ end
+end
config/application.rb
@@ -24,5 +24,6 @@ module Mocode
# The default locale is :en and all translations from config/locales/*.rb,yml are auto loaded.
# config.i18n.load_path += Dir[Rails.root.join('my', 'locales', '*.{rb,yml}').to_s]
# config.i18n.default_locale = :de
+ config.autoload_paths << "#{Rails.root}/app/models/services"
end
end