- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
我有一个非常简单的 Rails 应用程序,我正在努力从 Rails 4 升级到 Rails 5,但我注意到 default_url_options
在 config/environments/test.rb
我有:
Rails.application.routes.default_url_options[:host]= ENV["HTTP_HOST"] || "localhost"
Rails.application.routes.default_url_options[:port]= ENV["PORT"] || 3000
我的应用程序有一个名为 api
的命名空间。在我的请求规范中,我看到了这个:
[1] pry> api_v3_sample_url
=> "http://www.example.com:3000/api/v3/sample"
[2] pry> Rails.application.routes.url_helpers.api_v3_sample_url
=> "http://localhost:3000/api/v3/sample"
我错过了什么导致这些 URL 不同?
编辑
根据 this thread我设置了
config.action_controller.default_url_options = {
host: ENV['HTTP_HOST'] || 'localhost'
}
在 config/environments/test.rb
但现在我明白了:
> Rails.application.routes.url_helpers.api_v3_sample_url
ArgumentError: Missing host to link to! Please provide the :host parameter, set default_url_options[:host], or set :only_path to true
> api_v3_sample_url
=> "http://www.example.com/api/v3/sample"
编辑 2
可能值得注意的是,这些是请求规范而不是功能规范(不使用 capybara )。
最佳答案
这应该可以解决 Controller /请求规范中的问题:
config.action_controller.default_url_options = {
host: ENV['HTTP_HOST'] || 'localhost'
}
至于为什么会这样,有一些 more information available in this ongoing thread on Github .
关于ruby-on-rails - Rails 5 default_url_options 怪事,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43745669/
我需要在我的 rails 应用程序的环境之一中强制主机。 我可以通过包括 def default_url_options(opts={}) opts.merge({:host => 'stg
在我上一个 Rails 项目中,我不得不覆盖 default_url_options在 application_controller.rb始终通过每个请求传递参数,如下所示: def default_
我一定不明白关于电子邮件的一些琐碎事情,但是 defaul_url_options 中的主机是做什么的?需要 smtp 设置对我来说配置电子邮件的发送方式是有意义的,但 default_url_opt
在我的 application_controller 中,我有以下设置来包含 url_for 生成的所有路径的语言环境: def default_url_options(options={})
在我的 application.rb 文件中,我有几个选项可以像这样修改我的应用程序 URL: config.action_controller.default_url_options = { :tr
我有一个 Sidekiq 工作人员,旨在执行社交事件(例如:喜欢 Facebook 上的页面)。其中一部分需要知道被喜欢对象的 URL。 幸运的是,Rails 3 通过包含 Rails.applica
使用 rails 3.2.13 和 spree 2.0.2 我遇到了与 Rails mountable engine under a dynamic scope 类似的问题 我的路线: scope '
由于 ActionController::Base#default_url_options 已弃用,我想知道如何在 Rails3 中设置默认 url 选项。默认 url 选项不是静态的,而是取决于当前
我已将以下代码放入我的 config/environments/test.rb 文件中: config.action_mailer.default_url_options = { :host => "
我有一个非常简单的 Rails 应用程序,我正在努力从 Rails 4 升级到 Rails 5,但我注意到 default_url_options 有一些奇怪之处 在 config/environme
我在 ApplicationController 类中设置了 default_url_options 以在 url 中添加默认年份参数。 class ApplicationController 它
我有一个 ActionMailer View ,其中包含几个不同的链接。我现在在 localhost:3000 上运行它,所以我在一个名为 setup_mail.rb 的文件中设置了它在应用程序/初始
尝试在开发中预览我的邮件程序,但出现上述错误。(使用 Michael Hartl 教程)。 我相信它因为我的主机而无法正常工作。但是,使用 cloud 9 我很难找到我的主机。在书中,它被定义为 Cl
我经常有许多并行运行的 Rails 应用程序,因此我将它们配置为使用不同的端口: # Change default port of development server, see http://sta
我的应用程序的每个用户都有一个自定义 url(通过子域)存储在 db 中。 我的请求很简单,我想通过 json 提要发送“用户 url”,如下所示: {user_name: "vincent", :u
如何在 config/environments/production.rb 中动态设置主机: config.action_mailer.default_url_options = { :host =>
ActionMailer 提供了一种方法来定义与资源助手一起使用的主机: config.action_mailer.default_url_options = { :host => "example.
我必须为我的设计使用设置这个。 但我的应用程序允许用户通过 2 个域进行访问。 我想用用户访问的域设置 'config.action_mailer.default_url_options = { :h
我正在使用 Pow 来提供我的开发环境。在我的 config/environments/development.rb 和 test.rb 文件中,我有这一行: Rails.application.ro
我正在尝试设置 :host for action mailer 默认 url 选项。 我在所有环境文件中设置了以下内容 config.action_mailer.default_url_options
我是一名优秀的程序员,十分优秀!