You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

离线环境创建Rails 7项目时指定Gem源的方法

解决离线环境创建Rails 7项目时指定Gem源的问题

方法1:创建项目时直接指定Gem源参数

使用rails new命令时,通过--gem-source参数直接传入你的Artifactory仓库地址,生成的Gemfile会自动使用该源,替代默认的rubygems.org。命令示例:

rails new projapp -d postgresql -j esbuild --css bootstrap --gem-source https://your-artifactory-gem-repo-url

方法2:修改Rails模板的默认Gem源

如果需要长期让所有新生成的Rails项目默认使用自定义源,可以修改Rails的模板文件:

  1. 找到Rails模板的Gemfile模板路径,以rbenv环境为例,路径通常为~/.rbenv/versions/[你的Ruby版本]/lib/ruby/gems/[版本号]/gems/rails-[Rails版本]/lib/rails/generators/rails/app/templates/Gemfile.tt;使用rvm的话路径会对应调整。
  2. 打开Gemfile.tt文件,将默认的source "https://rubygems.org"行替换为你的Artifactory仓库地址:
source "https://your-artifactory-gem-repo-url"

方法3:创建项目后手动修正源并重新执行bundle

如果前两种方法未生效,可先执行创建命令(即使报错),再手动修改项目配置:

  1. 打开项目根目录下的Gemfile,将第一行的source "https://rubygems.org"替换为你的Artifactory源地址。
  2. 执行bundle install,此时bundle会从指定的Artifactory仓库拉取依赖。

额外注意事项

  • 确保你的Artifactory仓库已同步所有Rails项目所需的gem(包括rails本体、pg、esbuild相关依赖、bootstrap相关依赖等),否则bundle仍会因找不到gem报错。
  • 检查~/.bundle/config文件,若存在覆盖源的配置会影响bundle行为,可添加以下配置强制使用自定义源:
BUNDLE_MIRROR__HTTPS://RUBYGEMS.ORG/: https://your-artifactory-gem-repo-url

或直接设置全局默认源:

BUNDLE_SOURCE: https://your-artifactory-gem-repo-url

内容的提问来源于stack exchange,提问作者mila002

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 07:34:52