Rails 中 Gemfile 有什么用?

2023-12-29

有什么用Gemfile在铁轨上?

如何使用Gemfile?


在 Rails 开发过程中,有时您会想要提供一些您需要的功能,但要么您不知道如何做,要么您不想自己实现它,因为有很多才华横溢的开发人员已为其开发投入了工作。

您可能需要的这些开发(用户身份验证、消息系统、资产处理程序、地理位置、分页系统、链接到 Amazon AWS 等外部服务,以及最后但并非最不重要的 Rails 本身)称为 Ruby Gems。这些是 ruby​​ 软件包,不一定与 Rails 相关,但由于 Rails 基于 Ruby,因此 98% 的 gem 都可以用于您的 Rails web 应用程序代码。

可以找到很多宝石github http://github.com,但通过搜索宝石更有趣红宝石 http://rubygems.org/ or ruby-工具箱 https://www.ruby-toolbox.com/

Your gemfile是您想要包含在项目中的所有 gem 的列表。 它与bundler http://gembundler.com/(也是一个 gem)来安装、更新、删除和以其他方式管理您使用过的 gem。

The gemfile还有另一个目的 - 你可以将宝石分组:development, :test, :assets, :production等团体和 Rails 将知道何时包含 gem。例如:

group :development, :test do
    gem "rspec-rails"
    gem "factory_girl_rails"
    gem "guard-rspec"
end

请注意,在 Rails 4 上,assets组已被弃用

这些 gem 属于开发环境和测试环境,因为它们用于测试应用程序。您不需要它们在生产环境中可用(您可以,但这会不必要地增加内存)。

所以 - 要使用gemfile,只需写下您想要安装的 gem,例如

gem 'devise'

确保安装bundler事先(在你的控制台/cmd/ssh 中)

$ gem install bundler

然后在控制台写入

bundle install

你会注意到另一个 gemfile 出现了!Gemfile.lock如果您使用文本阅读器打开该文件,您将看到该文件列出了所有 gem 及其版本和依赖项。当您需要知道安装的 gem 的版本时,这会很有用。

如需更多阅读Gemfile - 在捆绑器页面上阅读 http://gembundler.com/gemfile.html

有关挑选宝石的信息,您可以从this http://www.railstutors.com/blog/how-to-pick-the-right-ruby-gem

祝好运并玩得开心点!


好的,那么创建的 Gemfile.lock 是什么?

Gemfile.lock,顾名思义,是对已安装的所有 gems 的所有版本的锁定。因此,如果 Gemfile 是需要安装的文件,那么锁定文件就是已安装的文件以及启动和运行应用程序实际需要的版本。

如果您没有该特定版本中的 gem(如 Gemfile.lock 中指定的),rails 会抱怨,您必须安装缺少的 gem(通过bundle install)或手动修复任何冲突(我相信捆绑程序会给你一些线索)

一些需要了解的事情Gemfile.lock

  • 如果你不小心删除了它,运行时它会重新生成bundle install。如果你不小心删除了Gemfile,你运气不好..你应该使用 git :)
  • Heroku 不关心 Gemfile.lock,因为它会重新安装所有 gem。所以对于 Heroku,你must设置你想要的gem版本,否则Heroku将始终安装最新版本的gem,这可能会导致问题
  • 将 Gemfile.lock 保留在您的项目中,以便您始终知道哪个版本的 gems 可以使您的应用程序正常运行。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Rails 中 Gemfile 有什么用? 的相关文章

  • Rails Active Admin css 与 Twitter Bootstrap css 冲突

    我对 Rails 资产管道有点陌生 所以我可能做错了什么 我正在尝试为我的后端使用 Active Admin 为我的前端应用程序使用 twitter bootstrap css 我将 bootstrap css 添加到 应用程序 资产 样式
  • 如何计算带有偏移量的异或?

    我想用不同的偏移量进行异或计算以在计算中列出 例子 key 0 1 0 text 0 1 0 1 0 1 0 1 1 1 异或计算 key 0 text 0 key 1 text 1 key 2 text 2 key 0 text 3 ke
  • Rails 3 + angularjs + 缩小在生产中不起作用:未知提供者:eProvider

    我已遵循我能找到的所有修复缩小的说明 例如 var MyController function renamed scope renamedGreeter MyController inject scope greeter and someM
  • Rubymine 6 更新/刷新 Rails 项目中可用的方法和路径?

    这是一个例子 假设我更新路线resources foo这给我带来了一些新的道路 例如 new foo session当我开始在 ERB 视图中输入路径时 我希望它向我显示 建议自动完成与路径匹配的名称 当我输入 new foo 我会得到所有
  • 目前最流行的 Ruby on Rails AUTHORIZATION gem/plugin 是什么? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 如何从 Rails 中的 date_select 或 select_date 获取日期?

    Using select date给我回一个params my date with year month and day属性 如何轻松获取 Date 对象 我希望有类似的事情params my date to date 我很高兴使用date
  • Ruby 中的任务/未来

    代表潜在延迟的异步计算并且可以订阅其完成的模式的惯用 Ruby 模拟是什么 即类似于 NET 的东西System Threading Task 或Python 3 xconcurrent futures future 请注意 这并不一定意味
  • 使用 VCR 过滤敏感数据

    我正在使用 VCR gem 记录 http 交互并在将来重播它们 我想过滤掉 uri 请求中的实际密码值 以下是 uri 的示例 http services somesite com Services asmx Cabins Usernam
  • “rmagick”gem 安装问题

    我在尝试在 centos 上安装 rmagick gem 时遇到问题 以下是我得到的输出 谁能帮我识别一下我缺少什么包裹 我已经安装了所有提到的另一个堆栈溢出线程 RMagick安装错误 https stackoverflow com qu
  • 在 Rails 3 中渲染 Markdown 文本

    我想将 markdown 转换为 html 在我看来我有markdown some text variable 但我得到了错误undefined method markdown I added require BlueCoth 到envir
  • 使用 Ruby aws-sdk 跟踪文件到 S3 的上传进度

    首先 我知道SO中有很多与此类似的问题 在过去的一周里 我读了大部分 如果不是全部 但我仍然无法让这项工作为我工作 我正在开发一个 Ruby on Rails 应用程序 允许用户将 mp3 文件上传到 Amazon S3 上传本身工作正常
  • 即使在急切加载之后,belongs_to 关联也会单独加载

    我有以下关联 class Picture lt ActiveRecord Base belongs to user end class User lt ActiveRecord Base has many pictures end 在我的
  • 已定义方法的 Ruby 钩子?

    我一直在谷歌上搜索这个问题 但找不到答案 这让我认为答案是否定的 但我想我会在这里问 以防有人确切知道 Ruby 是否有一个钩子来定义方法 即在模块或类上 如果没有 是否有人足够熟悉该实施的情况main对象以了解它到底如何将方法复制到Obj
  • 使用 rspec 测试嵌套路由

    我正在尝试使用 rspec 测试路由 以下给出了 预期块返回真值 的错误 我不确定我错过了什么 通过浏览器我可以发布到这个网址并且成功 有任何想法吗 谢谢 Routes resources forum topics do resources
  • 如何向 Rails 应用程序添加自定义字体?

    我想在 RoR 应用程序中使用几种字体 但它们的格式主要是 ttf 和 otf 等 我该如何将这些文件嵌入到我的 Rails 应用程序中 也就是说 一旦我将它们放入我的资产文件夹中 将它们嵌入我的 CSS 和 或 LESS 文件中的语法到底
  • Rails Windows Vagrant 响应时间非常慢

    我在跑 Vagrant 1 7 1 Rails 4 1 4 Thin 1 6 1 Windows 7 每个静态文件的发送时间都超过一秒 在我的 PC 上加载一个页面可能需要大约 20 秒 而在同事的 Linux 机器上则只需瞬间 有一些帖子
  • Ruby/Rails 集合到集合

    我有两个表与一个连接表连接 这只是伪代码 Library Book LibraryBooks 我需要做的是 如果我有一个图书馆的 id 我想获取该图书馆拥有的所有书籍所在的所有图书馆 因此 如果我有图书馆 1 图书馆 1 中有书籍 A 和
  • 如何为 ApplicationController 中 after_action 过滤器中的所有操作渲染 json?

    是否可以在 Rails ApplicationController 中创建一个 after filter 方法 该方法在每个操作上运行并呈现为 JSON 我正在构建一个 API 并且希望将控制器中的每个操作的输出呈现为 JSON 客户控制器
  • 资产管道:仅对一个控制器使用 javascript 文件

    在 Ruby on Rails v4 中 我希望仅为特定控制器加载一个 js 文件 或一组 js 文件 执行此操作的标准方法是什么 在 application js 中有 require tree 线 我假设这需要删除 所以我并不总是加载每
  • 我可以将 MAMP (MySQL) 或 XAMPP (MySQL) 与 Ruby on Rails 3 一起使用吗?

    我可以将 MAMP MySQL 或 XAMPP MySQL 与 Ruby on Rails 3 一起使用吗 我从 MYSQL com 安装了 MySQL 但遇到了很多麻烦 所以我喜欢使用 MAMP XAMPP Mysql 有人这样做吗 另外

随机推荐

  • 正则表达式的意外匹配

    我期望正则表达式模式ab 2 c仅匹配a后跟 0 1 或 2bs 随后是c 许多语言都以这种方式工作 例如 Python 然而 在 R 中 grepl ab 2 c c ac abc abbc abbbc abbbbc 1 TRUE TRU
  • 使用数据注释将字段标记为“只读”

    我正在努力使ID字段只读 它是数据库中的一个身份字段 因此用户不会设置它 不过 他们还是愿意看到 当分配给一个时 我缺少什么如下DataForm仍然允许编辑该值 public class StatusChoice BindableBase
  • 使用 Selenium 保存整页内容

    我想知道保存 Selenium 访问站点时检索到的所有文件的最佳方法是什么 换句话说 当 Selenium 访问时http www google com http www google com我想保存 HTML JavaScript 包括
  • 如何在windows中通过命令提示符方式设置文件权限?

    如何通过命令提示符方式在windows中设置相同的文件权限 gt attrib Displays or changes file attributes ATTRIB R R A A S S H H drive path filename S
  • 处理器架构不匹配构建错误

    在尝试运行测试应用程序时 我收到以下错误两次 正在构建的项目 MSIL 的处理器架构与参考 C Windows Microsoft NET Framework v4 0 30319 mscorlib dll x86 的处理器架构之间存在不匹
  • 如何在 google-app-engine 中使用内置的 django templatetags

    我正在尝试在内置模板标签中使用 Django 例如标记和 在我的谷歌应用程序中人性化 但它不起作用 我在 INSTALLED APPS 中添加了标记和人性化 还是行不通 如何使用它 这是人性化的方法 其他应该类似 在调用模板的控制器末尾有一
  • 从 iOS 设备上传图像到服务器

    我正在尝试在远程服务器上上传图像 如果我从谷歌下载手机上的图像并上传它们 例如http www mangauk com gallery albums album 11 lg scooby jpeg http www mangauk com
  • 在 PHP 中实现 secp256k1 (ECDSA)(针对比特币)[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 对于热心的反对者和 或结束者 如果您认为这对 SO 来说是题外话 请向我指出其他 StackExchange 网站 在该网站上这个问题会更
  • 为什么矩阵和 data.frame 之间的“越界”索引不同?

    我确信这是基本的 但我只是想really在这里了解R数据结构的逻辑 如果我按超出范围的索引对矩阵进行子集化 则会得到该错误 m lt matrix data c foo bar nrow 1 m 2 Error in m 2 subscri
  • 使用 php 清除 CMD-shell

    我有这个简单的 php 脚本 它每秒输出一个字符串
  • 如何删除包过滤器?

    如何禁用包过滤器 我不断收到此消息 Ignoring unknown package filter build tools 23 0 0 rc2 Warning The package filter removed all packages
  • 如何在 C# 中更改 XML 文件的属性值?

    我有一个 XML 文件 web config 我需要编辑每个标签的 value 属性 具体取决于键名称 这是 XML 文件的示例
  • 使用 xPath 循环遍历项目

    我正在尝试循环遍历 xml 文档 但我仍然在第二次迭代中获取第一个元素 不确定我缺少什么 有人可以帮忙吗 Xpath 非常新 string file HttpContext Current Server MapPath XML Locati
  • 是否需要break语句或者return语句就足够了?

    在我的 Python 3 5 脚本中 我有一个简单的for循环 看起来像这样 request simple string ignore Tuple that contains regex s to ignore for i regex in
  • 如何访问 Heroku 中的 docker 容器?

    我已按照此处构建图像的说明进行操作 https devcenter heroku com articles container registry and runtime getting started https devcenter her
  • 在 Shiny 中按日期过滤

    作为一个可怜的闪亮家伙 无法解决简单的任务 我在数据框中有一行带有日期的行 crime date lt strptime incidents REPORT DAT format Y m d 我的日期输出如下所示 1 2017 04 07 E
  • 在 Flask 中渲染 Jupyter Notebook Iframe

    我正在使用 Flask 为单个用户托管 UI 我一直在尝试做的事情是设置一种方法 让用户单击一个按钮 使用标记语言在文档中预先指定的位置插入一些文本和图像 我最初使用 Jinja2 来实现此目的 但问题是用户需要能够在插入数据后修改文档 以
  • 标签(或“标记”)接口是否已过时?

    我正在尝试帮助一位同事接受 OO 并且我发现在某些情况下 很难找到标签概念的可靠的现实示例 或marker 界面 不包含任何方法的接口 它仅用作标记或标记或标签 虽然对于我们的讨论来说这确实不重要 但我们使用 PHP 作为讨论背后的平台 因
  • ServiceStack支持二进制响应吗?

    ServiceStack服务中是否有任何机制可以返回流 大型二进制数据 WCF 的 MTOM 支持虽然笨拙 但可以有效地返回大量数据 而无需文本转换开销 我喜欢服务堆栈 这个小代码足以从内存流返回 Excel 报告 public class
  • Rails 中 Gemfile 有什么用?

    有什么用Gemfile在铁轨上 如何使用Gemfile 在 Rails 开发过程中 有时您会想要提供一些您需要的功能 但要么您不知道如何做 要么您不想自己实现它 因为有很多才华横溢的开发人员已为其开发投入了工作 您可能需要的这些开发 用户身