ruby-on-rails - 尝试在此 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
解决方案
推荐阅读
- stripe-payments - 使用 Stripe 资金进行付款
- python - 如何在不覆盖或复制现有值的情况下更新或扩展字典键?
- python - 将深层嵌套的 json 文件转换为数据框并在 json 对象中获取目标值
- javascript - 使用 GET 请求和标头从颤振桌面打开浏览器的解决方法
- c# - 为什么在数据模板中使用 xaml UserControl 时无法绑定到依赖属性?
- javascript - fileList[0] 缺少属性
- javascript - Vue,相同组件的多个实例以某种奇怪的方式处理事件
- html - valueChanges 输入显示但不保存
- session - 在基于动态子域的 Laravel 8app 上获取数据库错误
- scala - Scala 3 - 从 List[String] 实例化类