首页 > 解决方案 > 尝试在此 Rails 代码中应用更好的重构

问题描述

我有主要的 3 个控制器,它有一个称为激活的函数,它从表单中获取参数,但在创建到数据库之前,我必须将某种散列合并到该参数中,现在正在这样做:

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

标签: ruby-on-railsruby

解决方案


推荐阅读