【问题标题】:'# frozen_string_literal: true' is really needed in a rails application??? do i need to put it in each file?'# freeze_string_literal: true' 在 Rails 应用程序中真的需要吗???我需要把它放在每个文件中吗?
【发布时间】:2021-08-11 17:59:18
【问题描述】:

我正在编辑的 Rails 应用程序的每个文件都显示此警告,missing frozen string literal comment,我知道这是用于保留内存并避免为所有字符串文字重新分配内存,但是否有必要在 rails 或其默认启用?如果可以,如何全局启用?

【问题讨论】:

  • 请提及应用程序的 ruby​​ 和 rails 版本。
  • ruby 2.5.9 & rails 5.1.8

标签: ruby-on-rails ruby ruby-on-rails-5


【解决方案1】:

不,默认情况下不启用。

但是,您可以使用 Rubocop 将其附加到文件的顶部,并带有 Rubocop::Cop::Style::FrozenStringLiteralComment。这是一个可自动纠正的警察。

根据Holger Just

您实际上可以通过使用 ruby​​ --enable=frozen-string-literal 调用 ruby​​ 解释器来全局启用它。但是,这通常是一个坏主意,并且会以各种微妙的方式中断,除非您非常确定所有 gem 和依赖项中的所有文件实际上都期望冻结文字(通常不是这种情况)

【讨论】:

  • 您实际上可以通过使用ruby --enable=frozen-string-literal 调用ruby 解释器来全局启用它。但是,这通常是一个坏主意,并且会以各种微妙的方式破坏,除非您非常确定所有 gem 和依赖项中的所有文件实际上都期望冻结文字(通常不是这种情况)
  • 很高兴知道这一点!我会将其包含在我的答案中
  • @HolgerJust 是否有任何命令标志我只能将其添加到我的项目类中???
  • @ElissonG.M.Silva 不,Ruby 不是这样工作的。但是,Rubocop 有一项功能,可以在您可以运行的每个文件的顶部添加注释,例如每次发布前。请参阅Rubocop's documentation 和上面答案中的链接。
猜你喜欢
  • 2011-03-27
  • 1970-01-01
  • 1970-01-01
  • 2019-02-20
  • 2013-01-28
  • 2011-12-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多