Ruby on Rails ActiveJob Base里,如何实现DRY原则的最佳实践是啥?

2026-04-11 14:391阅读0评论SEO资讯
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计385个文字,预计阅读时间需要2分钟。

Ruby on Rails ActiveJob Base里,如何实现DRY原则的最佳实践是啥?

在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目录.

写关注文件.

Ruby on Rails ActiveJob Base里,如何实现DRY原则的最佳实践是啥?

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分钟。

Ruby on Rails ActiveJob Base里,如何实现DRY原则的最佳实践是啥?

在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目录.

写关注文件.

Ruby on Rails ActiveJob Base里,如何实现DRY原则的最佳实践是啥?

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 /应用/工作/关注”