您如何从自定义 类 访问 'request' 对象(或类似对象)?
How do you access the 'request' object (or similar) from custom classes?
在我的 Rails 5 应用程序中,我在 app/services
中有一个自定义 classes,我需要访问当前的子域。
现在,各个方法可能如下所示:
...
def self.is_valid? req
blacklist.exclude? req.subdomain
end
但这意味着我每次都需要传入request
。这不是最优的,所以我想知道如何从 class.
中访问 rails request
对象
请求对象通常只能从控制器和视图访问。您可以像任何其他对象一样将请求传递给需要它的方法(依赖注入),但是您的服务对象真的需要整个请求对象吗?为什么不只传递子域字符串?在我看来,服务对象不需要知道请求对象,因为这样的行为可能最好由控制器方法处理。
是的,它是特定于控制器的方法,需要作为参数传递到其他任何地方。这就是 Rails 的构建方式——全局变量将在所有客户端之间共享,控制器将在每个客户端的基础上实例化。因此,没有全局 "request" 对象,也没有内置的方式来列出所有当前连接的用户。
在我的 Rails 5 应用程序中,我在 app/services
中有一个自定义 classes,我需要访问当前的子域。
现在,各个方法可能如下所示:
...
def self.is_valid? req
blacklist.exclude? req.subdomain
end
但这意味着我每次都需要传入request
。这不是最优的,所以我想知道如何从 class.
request
对象
请求对象通常只能从控制器和视图访问。您可以像任何其他对象一样将请求传递给需要它的方法(依赖注入),但是您的服务对象真的需要整个请求对象吗?为什么不只传递子域字符串?在我看来,服务对象不需要知道请求对象,因为这样的行为可能最好由控制器方法处理。
是的,它是特定于控制器的方法,需要作为参数传递到其他任何地方。这就是 Rails 的构建方式——全局变量将在所有客户端之间共享,控制器将在每个客户端的基础上实例化。因此,没有全局 "request" 对象,也没有内置的方式来列出所有当前连接的用户。