在我的模型上运行Rspec时,我得到以下警告:
[已弃用]I18n。enforce\u available\u locales将来将默认为true。如果确实要跳过区域设置的验证,可以设置I18n。强制\u available\u locales=false以避免此消息。
我看到了一个类似的问题,解决方案是设置配置。i18n。强制\u可用\u区域设置或I18n。配置。在我的配置/应用程序中强制执行\u available\u locales。rb文件。我两个都试过了,但还是得到了警告。
给出弃用警告的测试没有使用除ActiveModel之外的任何Rails。我没有要求使用默认的spec\u助手,而是创建了自己的spec\u助手,它根本不涉及任何Rails。我还尝试在自定义spec\u助手中设置enforce\u available\u locales,但遇到了一个未初始化的常量错误。
如何删除弃用警告?
编辑:这是我的配置/application.rb中的确切代码,来自我的一次尝试enforce_available_locales
require File.expand_path('../boot', __FILE__)
# Pick the frameworks you want:
require "active_record/railtie"
require "action_controller/railtie"
require "action_mailer/railtie"
require "sprockets/railtie"
# require "rails/test_unit/railtie"
# Require the gems listed in Gemfile, including any gems
# you've limited to :test, :development, or :production.
Bundler.require(:default, Rails.env)
module Microblog
class Application < Rails::Application
# Settings in config/environments/* take precedence over those specified here.
# Application configuration should go into files in config/initializers
# -- all .rb files in that directory are automatically loaded.
# Set Time.zone default to the specified zone and make Active Record auto-convert to this zone.
# Run "rake -D time" for a list of tasks for finding time zone names. Default is UTC.
# config.time_zone = 'Central Time (US & Canada)'
# The default locale is :en and all translations from config/locales/*.rb,yml are auto loaded.
# config.i18n.load_path += Dir[Rails.root.join('my', 'locales', '*.{rb,yml}').to_s]
# config.i18n.default_locale = :de
I18n.config.enforce_available_locales = true
end
end
似乎有效的方法是将以下行添加到我的spec\u助手中:
require 'i18n'
I18n.config.enforce_available_locales = true
因为我的测试不使用Rails,所以应用程序类不会被触及,所以enforce\u available\u locales必须放在spec\u helper本身中。第一行去掉了未初始化的常量错误。
Github中也报告了一个与此相关的bug(svenfuchs/i18n#223),据说它已在gem版本中修复。
所以我认为解决方案是要求“
gem 'i18n', '>= 0.6.9'
并执行捆绑更新。
然后执行以下操作:
配置/应用程序。rb型
I18n.enforce_available_locales = true
# If you set the default_locale option you should do it after the previous line
# config.i18n.default_locale = :de
裁判:https://github.com/rails/rails/issues/13159
希望有帮助:)
我刚刚更新到rails 4.0.2,我收到了这个警告: [已弃用]我18n.enforce_available_locales将来会默认为true。如果您真的想跳过区域设置的验证,您可以设置I18n.enforce_available_locales=false以避免此消息。 将其设置为false是否存在任何安全问题?
您在配置/应用程序中放置了类似的内容。rb 此时仍会出现警告:
问题内容: 我有一个React组件,我想在单击时切换一个CSS类。 所以我有这个: 这个问题是ESLint不断告诉我“ this.refs”已贬值。 我该怎么办?我如何解决它而不使用折旧的代码? 问题答案: 您要引用的Lint规则称为 no-string-refs, 并通过以下方式警告您: 之所以收到此警告,是因为已实现了不赞成使用的使用方式(通过使用字符串)。根据您的React版本,您可以执行以
我们有一个Java项目。我们为javac启用了Xlint(启用警告)和Werror(将警告视为错误)标志,以确保我们的代码没有警告。最近我们决定不推荐一个类。问题是在某些情况下,SuppressWarnings(“弃用”)根本不会抑制弃用警告,从而导致生成失败。下面是我遇到的用例列表: > 在其他未弃用的类中导入。 在其他已弃用的类中导入。 家长班。 类型参数。例如 但是,即使没有“抑制”,此选项
我正在尝试更新到Rails 5,我收到以下弃用警告: 弃用警告:哈希的方法已弃用,将在Rails 5.1中删除,因为ActionController::Parameters不再从哈希继承。使用这种不推荐的行为会暴露出潜在的安全问题。如果继续使用此方法,则可能会在应用程序中创建可被利用的安全漏洞。相反,请考虑使用以下未被弃用的有文档记录的方法之一:http://api.rubyonrails.org
我已更新到Rails 4.0.2,并收到了弃用警告: [已弃用]I18n。enforce\u available\u locales将来将默认为true。如果确实要跳过区域设置的验证,可以设置I18n。强制\u available\u locales=false以避免此消息。 为了消除警告,我决定设置: 在我的配置/应用程序中。rb文件。 它在开发中起到了作用,但当我将我的工作部署到Heroku时