ruby-on-rails - 如何在 Ruby 中对获取参数和检查 nil 的代码进行去重

标签 ruby-on-rails ruby design-patterns reflection metaprogramming

token = params[:token]
email = params[:email]
phone_number = params[:phone_number]
iso_code = params[:iso_code]

if token.nil? or email.nil? or phone_number.nil? or iso_code.nil?
  raise InvalidParameterException
end

token.strip!
email.strip!
phone_number.strip!
iso_code.strip!

#use the variables

我的rails项目中有很多这样的代码。 您如何在 Ruby on Rails 中推广这种模式?
反射和元编程是否可能?

最佳答案

unless [:token, :email, :phone_number, :iso_code].-(params.keys).empty?
  raise InvalidParameterException
end
params.each{|_, v| v.strip!}

然后,每次都像params[:token]一样使用它。也许您可以为 params 使用更短的变量名称,例如 p

关于ruby-on-rails - 如何在 Ruby 中对获取参数和检查 nil 的代码进行去重,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13450537/

相关文章:

java - 这个问题的最佳设计模式

ruby-on-rails - Rails 重定向到 REST

ruby-on-rails - 如何为不在模型文件夹根目录中的模型定义 Rails 中的工厂女孩​​?

ruby-on-rails - 页面显示代码而不是运行代码的结果

ruby-on-rails - 名称错误 : uninitialized constant DeviseMultipleTokenAuthDevice

haskell - 为什么有一个单独的类型模块?

ruby-on-rails - Sentry Rails 客户端

ruby - 在 gem 上运行测试的简单方法?

ruby-on-rails - 找不到 'id' =clas 的时间表

javascript - 这是一个新的 javascript 工厂模式吗?