如何从自定义类访问“请求”对象(或类似对象)?

Kie*_*n E 4 ruby ruby-on-rails ruby-on-rails-5

在我的 Rails 5 应用程序中,我内部有一个自定义类app/services,我需要访问当前的子域。

现在,各个方法可能如下所示:

...
def self.is_valid? req
  blacklist.exclude? req.subdomain
end
Run Code Online (Sandbox Code Playgroud)

但这意味着我request每次都需要通过。这不是最佳的,所以我想知道如何request从类中访问 Rails 对象。

Ant*_*y E 5

请求对象通常只能从控制器和视图访问。您可以像任何其他对象一样将请求传递给需要它的方法(依赖注入),但是您的服务对象真的需要整个请求对象吗?为什么不直接传递子域字符串呢?在我看来,服务对象不需要了解请求对象,因为控制器方法可能会更好地处理这种行为。