gpt4 book ai didi

ruby-on-rails - 在 Rails 服务中获取 root_url

转载 作者:数据小太阳 更新时间:2023-10-29 09:00:21 25 4
gpt4 key购买 nike

我正在开发的应用程序大量使用了 Rails services 。我的问题是我需要获取应用程序的根 url,类似于您在 View 中使用 root_url 的方式,但这在服务中不起作用。除了在我的每个环境设置文件中输入 url 之外,有谁知道这样做的方法吗?

编辑

我尝试使用 Rails.application.routes.url_helpers.root_url,因为它建议在此处执行 stackoverflow.com/a/5456103/772309 但它希望您通过 :host = > ... 作为参数。这就是我想要找到的。

最佳答案

根据我从链接的“Rails 服务”文章中读到的内容,这些服务只是普通的旧 ruby​​ 对象。如果是这种情况,那么您需要将 root_url 从 Controller 传递到服务对象的初始化程序。要扩展该文章中的示例:

用户 Controller

class UsersController < ActionController::Base
...
private
...

def register_with_credit_card_service
CreditCardService.new({
card: params[:stripe_token],
email: params[:user][:email],
root_url: root_url
}).create_customer
end
end

信用卡服务

class CreditCardService
def initialize(params)
...
@root_url = params[:root_url]
end
end

编辑:利用 Rails.application.config 的替代解决方案

class UsersController < ActionController::Base
before_filter :set_root_url

def set_root_url
Rails.application.config.root_url = root_url
end
end

class CreditCardService
def some_method
callback_url = "#{Rails.application.config.root_url}/my_callback"
end
end

关于ruby-on-rails - 在 Rails 服务中获取 root_url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37122251/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com