在 Rails 4 中创建到外部 URL 的 Rails 路由

2023-12-29

我有一堆路由(~50)需要映射到外部 URL。我绝对可以按照建议做here https://stackoverflow.com/questions/3622706/creating-a-rails-route-to-an-external-url但这会让我的routes.rb 文件变得混乱。有什么方法可以将它们放在配置文件中并从我的routes.rb 文件中引用它吗?

另外,映射到外部URL时,如果是非生产环境,需要映射到“http:example-test.com/..”,在生产模式下需要映射到“http:example.com/..”。 ……”。我知道我可以在配置中有一个 yml 文件来处理不同的环境。但如何在我的routes.rb 文件中访问它?


首先,我们为外部主机创建一个自定义配置变量:

# config/application.rb
module MyApp
  class Application < Rails::Application
    config.external_host = ENV["EXTERNAL_HOST"]
  end
end

然后让我们根据环境进行设置:

# config/environments/development.rb
Rails.application.configure do
  # ...
  config.external_host ||= 'dev.example.com'
end

# config/environments/test.rb
Rails.application.configure do
  # ...
  config.external_host ||= 'test.example.com'
end

# config/environments/production.rb
Rails.application.configure do
  # ...
  config.external_host ||= 'example.com'
end

然后我们设置路线:

Rails.application.routes.draw do
  # External urls
  scope host: Rails.configuration.external_host do
    get 'thing' => 'dev#null', as: :thing
  end
end

让我们尝试一下:

$ rake routes
Prefix Verb URI Pattern      Controller#Action
 thing GET  /thing(.:format) dev#null {:host=>"dev.example.com"}
$ rake routes RAILS_ENV=test
Prefix Verb URI Pattern      Controller#Action
 thing GET  /thing(.:format) dev#null {:host=>"test.example.com"}
$ rake routes RAILS_ENV=production
Prefix Verb URI Pattern      Controller#Action
 thing GET  /thing(.:format) dev#null {:host=>"example.com"}
$ rake routes EXTERNAL_HOST=foobar
Prefix Verb URI Pattern      Controller#Action
 thing GET  /thing(.:format) dev#null {:host=>"foobar"}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Rails 4 中创建到外部 URL 的 Rails 路由 的相关文章

  • 如何在测试环境中通过 URL 访问 ActiveStorage 对象?

    给定一个具有 ActiveStorage 附件的模型 class MyObject has one attached avatar end 在开发环境中 我能够将头像作为 StringIO 对象检索 obj MyObject new val
  • Correct_user 和 admin 的多个 before_filter 语句

    我有一个组资源 我正在尝试使用适当的授权来设置该资源 我试图实现的授权逻辑是这样的 只有群组成员才能查看他们的群组 管理员可以查看any组 以及采取其他行动 我尝试在组控制器中使用以下 before filter 语句来执行此操作 befo
  • NoMethodError 未定义方法“名称” for nil:NilClass

    我有两个模型帖子和类别 我试图在我的索引和帖子显示视图中显示每个帖子的类别名称 我正在使用表连接 但问题是 虽然在我的显示视图中类别显示正确 但它在索引视图中给出了 NoMethodError undefined method name f
  • Rails:页面加载时间很长

    我有一个 Rails 项目 我在一个控制器中遇到了非常奇怪的事情 浏览器需要大约 3 分钟来加载页面 但 Rails 在日志中写入 Completed 200 OK in 20563ms Views 17144 2ms ActiveReco
  • 使用 SASS 切换用户主题 - Ruby on Rails

    所以我有一个 Rails 管理系统 允许用户选择一个主题 基本上是一组 SASS 颜色变量 它将使用新颜色重新编译 application css scss 当用户从下拉菜单中选择并提交时 更改此设置的最佳方法是什么 我阅读了一些有关缓存和
  • 如何使用 rspec 测试 ActionCable 和 Devise?

    在我的 Rails 5 1 应用程序中 我使用设备进行身份验证和 ActionCable 我的 ActionCable 连接如下所示 module ApplicationCable class Connection lt ActionCab
  • Bootstrap shown.bs.tab 事件不起作用

    我正在使用灵活的模板 http the8guild com themes html flexy v1 7 stylesPage html 使用引导程序 并且我无法让选项卡上的 shown bs tab 事件正常工作 我已经成功让它发挥作用J
  • 如何在不加载关联模型的情况下检查 has_one 是否存在

    我有一个简单的 has one 关系 class User lt ApplicationRecord has one detail has many courses end class Detail lt ApplicationRecord
  • Ruby on Rails 中的三重连接

    我对 Ruby on Rails 中的关联有疑问 应用程序中有项目 用户 角色和组 项目属于一个有用户的组 一个用户可以属于多个不同的组 但只能在该组中拥有一个特定的角色 例如 在一个组中 用户是项目所有者 但在另一个组中 他是作家 使用
  • Googlebot 收到现有模板缺少模板错误

    在过去的几天里 当谷歌机器人尝试访问我们的主页 欢迎 索引 时 我们开始收到缺少模板的错误 我已经盯着这个看了几个小时 知道我只是错过了一些简单的东西 A ActionView MissingTemplate occurred in wel
  • 如何阻止与 RSpec 和 Capybara 的外部连接?

    在我的 Rails 项目中 我想编写非理想条件的测试 例如缺乏互联网连接或超时 例如 我正在使用 gem 来联系 API 并且希望确保在我的应用程序和外部 API 之间存在连接问题时能够正确处理错误 我已经可以通过用录像机制作固定装置并从
  • 如何以 Rails 方式处理 JavaScript 事件(例如“link_to :remote”)?

    我正在使用 Ruby on Rails 4 我想以 Rails 方式处理 JavaScript 事件 也就是说 例如 假设我有以下内容 link to destroy article path article method gt delet
  • MONGODB [DEBUG] 游标的cursor.refresh() 7078636577051629992

    更新大型 json 列表时 出现以下错误 2012 04 01T09 34 00 00 00 app run 1 MONGODB DEBUG cursor refresh for cursor 7078636577051629992 201
  • 渲染:带参数的动作

    我有一个有 2 种方法的类 第一个方法由视图使用一些 GET 参数 params page 调用 我想保存这些参数并通过渲染操作将它们发送到我的第二个方法 class exemple def first sql save of params
  • 如何使 Rails 3 资源预编译速度更快?

    我有一个正在运行的 Rails 3 2 1 应用程序 我正在通过 Capistrano 进行部署deploy assets它运行deploy assets precompile task 一切工作都很好 除了编译本身非常慢 我没有那么多 C
  • 自动测试无限循环

    我在 Rails 项目中使用自动测试时遇到了一个问题 即当测试失败时 即 我修改了测试文件并且自动测试自动运行测试 自动测试会不断尝试运行测试 当然每次都会失败 因为文件尚未被修改 而不是等到文件再次保存 当咆哮通知打开时 当我试图修复代码
  • 忽略 git 中的本地配置文件

    Rails 应用程序中有一些本地文件 属于我们存储库的一部分 我希望 git 忽略它们 基本上 我希望 git 忽略我对 config environments 目录和 config application rb 文件中的任何内容所做的所有
  • 多态控制器和调用对象

    我的地址具有多态关系 可以由成员或依赖者拥有 一切看起来都很棒 直到我意识到除非我遗漏了一些东西 否则我不知道创建它的对象是什么类型 有没有办法告诉路由文件包含对象的类型 Models class Member lt ActiveRecor
  • 预期的 ProductField,出现数组问题

    我有一个 Rails 4 应用程序 它有一个如下所示的 params 块 def store params params require store permit name description user id products attr
  • Rails 3 + angularjs + 缩小在生产中不起作用:未知提供者:eProvider

    我已遵循我能找到的所有修复缩小的说明 例如 var MyController function renamed scope renamedGreeter MyController inject scope greeter and someM

随机推荐

  • 使用 CSS 取消选中复选框

    对于那些不熟悉的人来说 复选框的选中属性将接受任何输入作为选中该框的标志 事实上 它不需要任何文字 所以所有这些都会选中该框
  • 如何在 XAML windows 8 的行和列中显示数据

    在 Metro 风格的 Windows 8 应用程序中 我如何使用类似于此 https dl dropbox com u 59251888 img png image 的 xaml 显示数据 是否可以使用ListBox ListView G
  • HTMLPanel 上的 GWT UiHandler

    我正在编写一个带有以下标记的小部件
  • 更新 django 数据库以反映现有模型的更改

    我已经定义了一个模型并通过以下方式创建了其关联的数据库manager py syncdb 现在我已经向模型添加了一些字段 我尝试了syncdb再次执行 但没有输出出现 在尝试从我的模板访问这些新字段时 我收到 No Such Column
  • 如何通过 python 子进程与 mac 上的应用程序交互?

    我知道已经发布了类似的问题 但我见过的方法似乎都不起作用 我想在 mac 上使用 python 子进程启动应用程序 xfoil 并使用脚本向 xfoil 发送一堆命令 xfoil 是一个在终端窗口中运行的应用程序 您可以通过文本命令与其交互
  • C# 方法默认是密封的还是虚拟的?

    我知道的定义virtual and sealed关键字 但是如果您不将它们与方法一起使用 那么默认情况下可以覆盖该方法吗 我来自vb net背景 它在 vb net 中是这样的 来自 MSDN 如果未指定 Overridable 或 Not
  • 台式电脑上的 OpenGL|ES

    我正在开发一个 OpenGL 项目 我想将其移植到支持 OpenGL ES 的嵌入式系统 由于 OpenGL ES 是 OpenGL 的子集 在嵌入式系统上编译我的 OpenGL 应用程序有多难 假设我的OpenGL代码在OpenGL ES
  • 开发模式 - 其他用户制作的模板电子表格的副本

    当对主脚本 由另一个帐户拥有 进行更改时 包含处于开发模式的库的电子表格副本是否会立即更新 我创建了一个脚本 gt gt 保存了一个版本 gt gt 在电子表格中添加了一个库引用 在开发模式下 gt gt 制作了该ss的多个副本 在用于创建
  • 使用 php 获取窗口大小 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 这段代码有什么问题 window width window height 任何想法 您的代码没有任何问题 但是您无法获取 PHP 变量中的
  • 将 mylyn Gitlab 连接器连接到 Eclipse 时出错

    我正在尝试为 Eclipse Oxygen v4 7 1a 配置 Mylyn Gitlab 连接器 但是当我尝试添加新任务时 它会抛出异常 并且不允许我继续创建新任务 正确输入我的数据和 gitlab 存储库的 url 地址 甚至使用多个
  • 使用sql查询总结时间列

    我有一张表如下 repID ClockIn ClockOut TotalHours 109145 7 50 50 AM 3 37 16 PM 7 46 26 109145 7 52 41 AM 3 44 51 PM 7 52 10 1091
  • C# 禁用 USB ReadPipe 的垃圾收集

    我正在尝试使用 FTDI 的 D3XX NET 从 USB 端口收集数据 收集数据 然后发送到快速傅立叶变换以绘制频谱 即使您丢失了一些数据 这也可以正常工作 你说不出来 但是 如果您随后想要将此数据发送到音频输出组件 您会发现数据丢失 这
  • 如何根据传入远程通知负载中定义的类别添加不同的操作?斯威夫特更新

    我正在我的两个相关应用程序中实现推送通知 到目前为止我能够发送通知 设备到设备以及主题 收到通知后 通知会显示随有效负载发送的 url 处的图像 我的目标是向主题通知添加操作 并且每个主题的操作都不同 Ej 行动为 shop promoti
  • 在 C# 中添加十六进制值

    在我的系统中 我需要添加 2 个十六进制值 那么 如何在 C 中添加十六进制值 我还想知道十六进制值的最大长度以及哪个实例保存这些值 C 支持十六进制文字 http msdn microsoft com en us library aa66
  • Haskell 中的惰性笛卡尔积

    我想在 Haskell 中生成一个相当大但有限的笛卡尔积 然后我需要对其进行迭代 想想平均场模型的配分函数 自然而然的事情使用sequence 像这样 l sequence replicate n 0 1 2 不幸的是 对于大n 这不适合内
  • 如何创建 android:pathData?

    所以我需要在我的应用程序中使用路径数据 有没有办法将已有的图像转换为路径数据 或者唯一的方法是使用 Photoshop 等实际计算所有像素 矢量图像android中的PathData是矢量图形程序的脚本 它并不是完全干净且人类可读的代码作为
  • 无法创建 yeoman web 应用程序

    当我尝试创建一个网络应用程序时 我得到了这个yeoman usr local lib node modules yo node modules insight node modules configstore configstore js
  • 为什么这段C代码可以编译?

    include
  • 在 Logback 中创建自定义布局

    我正在尝试在 logback 中创建自定义布局 如示例中所示手册第 6 章 http logback qos ch xref chapters layouts MySampleLayout html package com dces uti
  • 在 Rails 4 中创建到外部 URL 的 Rails 路由

    我有一堆路由 50 需要映射到外部 URL 我绝对可以按照建议做here https stackoverflow com questions 3622706 creating a rails route to an external url