Ruby on Rails ActiveJob Base里,如何实现DRY原则的最佳实践是啥?
- 内容介绍
- 文章标签
- 相关推荐
本文共计385个文字,预计阅读时间需要2分钟。
在Jobs中使用sanitization,你可以在模型的方法中或者一个单独的Helper类中放置该方法。以下是一个示例:
ruby在模型中class MyModel
或者创建一个Helper类module MyHelper def sanitized_sql_statement(query) ActiveRecord::Base.send(:sanitize_sql_array, query) endend
在文件选择上,如果你有两个不同的工作文件,你可以根据这些文件的用途来决定放置位置:
1. 如果这两个文件都属于同一个模型或者有很强的关联,那么在模型内部放置会更合适。
2.如果这些文件属于不同的上下文或者功能,那么在Helper类中放置会更好,这样可以在多个地方复用。
在应用中复用此方法时,确保你通过`include MyHelper`或直接调用`MyModel.new.sanitized_sql_statement(query)`来使用它。
我需要在Jobs中使用sanitization,所以我写了方法def sanitized_sql_statement(query) ActiveRecord::Base.send( :sanitize_sql_array, query ) end
我有2个不同的工作文件.我应该在哪里放置这种方法以及如何在乔布斯中使用它?
使用关注.在作业目录app / jobs / Concerments(如模型和控制器)下创建Concer目录.
写关注文件.
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 file =>中添加自动加载路径. config.autoload_paths<< “#{} Rails.root /应用/工作/关注”
本文共计385个文字,预计阅读时间需要2分钟。
在Jobs中使用sanitization,你可以在模型的方法中或者一个单独的Helper类中放置该方法。以下是一个示例:
ruby在模型中class MyModel
或者创建一个Helper类module MyHelper def sanitized_sql_statement(query) ActiveRecord::Base.send(:sanitize_sql_array, query) endend
在文件选择上,如果你有两个不同的工作文件,你可以根据这些文件的用途来决定放置位置:
1. 如果这两个文件都属于同一个模型或者有很强的关联,那么在模型内部放置会更合适。
2.如果这些文件属于不同的上下文或者功能,那么在Helper类中放置会更好,这样可以在多个地方复用。
在应用中复用此方法时,确保你通过`include MyHelper`或直接调用`MyModel.new.sanitized_sql_statement(query)`来使用它。
我需要在Jobs中使用sanitization,所以我写了方法def sanitized_sql_statement(query) ActiveRecord::Base.send( :sanitize_sql_array, query ) end
我有2个不同的工作文件.我应该在哪里放置这种方法以及如何在乔布斯中使用它?
使用关注.在作业目录app / jobs / Concerments(如模型和控制器)下创建Concer目录.
写关注文件.
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 file =>中添加自动加载路径. config.autoload_paths<< “#{} Rails.root /应用/工作/关注”

