【问题标题】:Ruby on Rails: where to put the 'require' files?Ruby on Rails:将“需要”文件放在哪里?
【发布时间】:2015-10-19 23:29:21
【问题描述】:

我正在尝试使用这个 gem barometer,在 document 中它说它可以直接使用 require 'barometer'

我一直用gem把它们放在gemfile,但我觉得这不一样...

我是否只需下载整个 repo,并将 lib 文件夹中的所有文件复制到我的 vendor 文件夹中?或者public 文件夹?

您通常会将这些文件放在哪里?你会在哪里包含require?这应该在应用程序控制器中吗?或者也许在助手中?很抱歉这个菜鸟问题。

我知道在我的本地环境中,我可以在控制台中输入gem install barometer,而不必输入require,但我认为这在heroku 或生产环境中不起作用。

【问题讨论】:

  • 把它放到 Gemfile 中。 “require”可能根本不需要(如果您使用纯红宝石,它们通常包括在doco中)......如果它不能正常工作,那么将您的需求添加到您的application.rb(不是您的控制器),在config/application.rb
  • Heroku 基于 Gemfile 捆绑安装 gem。您可以在控制台中查看 Heroku 构建日志(运行 git push 之后)。
  • @TarynEast 如果不在控制器中,但 Gareth,提到它可以吗?
  • 是的“它可以”...但通常这种事情会使您的控制器/模型等混乱。通常需要在一个地方进行所有操作。通常,您甚至不需要将它们与 gem 一起使用(您只需将其放在 Gemfile 中......并且 Gemfile 需要它供您查看:stackoverflow.com/questions/4800721/…

标签: ruby-on-rails ruby ruby-on-rails-4 heroku require


【解决方案1】:

我一直使用 gems 并将它们放在 gemfile 中,但我认为这不一样...

不,这没有什么不同。 Barometer 是一个Rubygem,将它放入您的 Gemfile 中正是使用它的方式。

与每个库一样,您的 require 应该放在使用代码的任何文件中,例如 Barometer.new 调用所在的文件。您并不总是需要 require 行,具体取决于您的 Ruby 环境,但习惯它总是一个好主意

【讨论】:

  • 但是我会把它放在 view.html.erb 文件中吗?或者如果我通过model.rb 调用它会更好吗?还是没关系?只要在任何地方调用Barometer.new 都可以吗?只是想找出最佳实践目的
  • 您可能不想做任何在您的视图中进行网络调用的事情。如果气压计代码与特定模型相关,那么您可能应该将代码放在那里,否则它应该在您的控制器中 - 或者如果涉及多行代码,则放在另一个名为 的模块中 由你的控制器
  • 酷,有道理。感谢您的帮助!
猜你喜欢
  • 1970-01-01
  • 2011-08-05
  • 2014-06-21
  • 2015-01-10
  • 1970-01-01
  • 1970-01-01
  • 2015-04-28
  • 2023-04-10
  • 2015-03-02
相关资源
最近更新 更多