Попытка применить лучший рефакторинг в этом коде рельсов - PullRequest
1 голос
/ 01 мая 2020

У меня есть 3 основных контроллера, у которых есть функция активация , которая принимает параметры из формы, но перед созданием в базе данных мне нужно объединить в эти параметры какой-то ха sh , Сейчас я делаю так:

class AccountsController < ApplicationController

  def activation

    activation_params = if valid_user?
      # This is a service, there I am taking this params and adding up one hash and returning the same 
      # params back
      Account::ActivationParamsModifier.new(params).call
    else
      params
    end

    @activations = Activation.new(activation_params[:activations])
    if @activations.save!
      # Code Here
    end
  end

  private

  def valid_user?
    # Valid User Check
  end
 end
end

Я пытаюсь выяснить здесь одну вещь, этот код ниже в 3 контроллерах, а также я думаю, что этот код не с хорошим рефакторингом. Любые предложения по улучшению этого? Я знаю этот небольшой код, но показывает на разных контроллерах. Я не уверен, что это before_action подходит для этого.

    activation_params = if valid_user?
      Account::ActivationParamsModifier.new(params, user_id).call
    else
      params
    end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...