在 ActiveJob::Base 中干燥
DRY in ActiveJob::Base
我需要在 Jobs 中使用清理,所以我写了方法
def sanitized_sql_statement(query)
ActiveRecord::Base.send(
:sanitize_sql_array,
query
)
end
我有 2 个不同的作业文件。我应该把这个方法放在哪里以及如何从乔布斯那里使用它?
使用concern
.
在作业目录 app/jobs/concerns
下创建关注目录,就像模型和控制器一样。
写入关注文件。
module SqlSanitizer
extend ActiveSupport::Concern
def sanitized_sql_statement(query)
ActiveRecord::Base.send(
:sanitize_sql_array,
query
)
end
end
并包括在你的工作中
class YourJob < ActiveJob::Base
include SqlSanitizer
# ... do something
end
如果无法自动加载 SqlSanitizer,请在 config/application.rb 文件中添加自动加载路径 => config.autoload_paths << "#{Rails.root}/app/jobs/concerns"
我需要在 Jobs 中使用清理,所以我写了方法
def sanitized_sql_statement(query)
ActiveRecord::Base.send(
:sanitize_sql_array,
query
)
end
我有 2 个不同的作业文件。我应该把这个方法放在哪里以及如何从乔布斯那里使用它?
使用concern
.
在作业目录 app/jobs/concerns
下创建关注目录,就像模型和控制器一样。
写入关注文件。
module SqlSanitizer
extend ActiveSupport::Concern
def sanitized_sql_statement(query)
ActiveRecord::Base.send(
:sanitize_sql_array,
query
)
end
end
并包括在你的工作中
class YourJob < ActiveJob::Base
include SqlSanitizer
# ... do something
end
如果无法自动加载 SqlSanitizer,请在 config/application.rb 文件中添加自动加载路径 => config.autoload_paths << "#{Rails.root}/app/jobs/concerns"