未定义的方法`default_locale ='为零:NilClass
我试图国际化我的应用程序与设计,但我在一些点挣扎。我已经installe了国际化的宝石,并创建了devise.pt-BR.yml
文件,其内部application.rb
未定义的方法`default_locale ='为零:NilClass
config.i18n.default_locale = :'pt-BR'
好写的,但是当我尝试任何事情我的应用程序中,我得到了以下错误消息:
未定义的方法`DEFAULT_LOCALE =”的零:NilClass
Rails.root:/首页/ Ubuntu的/工作区/ aqueleprojetoprivate /医学生 应用程序跟踪|框架跟踪|完整曲线
应用程序/控制器/ application_controller.rb:8:
<class:ApplicationController>' app/controllers/application_controller.rb:1:in
' 的ActiveSupport(4.2.4)LIB/active_support/dependencies.rb:457:在load' activesupport (4.2.4) lib/active_support/dependencies.rb:457:in
块 在LOAD_FILE' 的ActiveSupport(4.2.4) LIB/active_support/dependencies.rb:647:在new_constants_in' activesupport (4.2.4) lib/active_support/dependencies.rb:456:in
LOAD_FILE '的ActiveSupport(4.2.4) LIB/active_support/dependencies.rb:354:在require_or_load' activesupport (4.2.4) lib/active_support/dependencies.rb:494:in
load_missing_constant' 的ActiveSupport(4.2.4) LIB/active_support/dependencies.rb :184:const_missing' app/controllers/home_controller.rb:1:in
' activesupport(4.2.4)lib/active_support/dependencies.rb:457:inload' activesupport (4.2.4) lib/active_support/dependencies.rb:457:in
block in load_file'activesupport(4.2.4) lib/active_support/dependencies.rb:647:innew_constants_in' activesupport (4.2.4) lib/active_support/dependencies.rb:456:in
load_file'activesupport(4.2.4) lib/active_support/dependencies.rb:354:inrequire_or_load' activesupport (4.2.4) lib/active_support/dependencies.rb:494:in
load_missing_constant'activesupport(4.2.4) ) LIB/active_support/dependencies.rb:184:在const_missing' activesupport (4.2.4) lib/active_support/inflector/methods.rb:261:in
const_get '的ActiveSupport(4.2.4) LIB/active_support /偏转器/ methods.rb:261:在block in constantize' activesupport (4.2.4) lib/active_support/inflector/methods.rb:259:in
每个' 的ActiveSupport(4.2.4) LIB/active_support/inflector/methods.rb:259:inject' activesupport (4.2.4) lib/active_support/inflector/methods.rb:259:in
constantize' activesupport(4.2.4)lib/active_support/dependencies.rb:566:inget' activesupport (4.2.4) lib/active_support/dependencies.rb:597:in
constantize'actionpack(4.2.4) lib/action_dispatch/routing/route_set.rb: 72:在controller_reference' actionpack (4.2.4) lib/action_dispatch/routing/route_set.rb:62:in
controller'actionpack( 4.2.4) lib/action_dispatch/routing/route_set.rb:41:在serve' actionpack (4.2.4) lib/action_dispatch/journey/router.rb:43:in
块中发送' actionpack(4.2.4)lib/action_dispatch/journey/router.rb:30:在each' actionpack (4.2.4) lib/action_dispatch/journey/router.rb:30:in
服务' actionpack(4.2 .4)lib/action_dispatch/routing/route_set.rb:821:在call' warden (1.2.4) lib/warden/manager.rb:35:in
块中调用' warden(1.2.4)lib/warden/manager.rb:34:在catch' warden (1.2.4) lib/warden/manager.rb:34:in
中调用'rack(1.6.4)lib /rack/etag.rb:24:incall' rack (1.6.4) lib/rack/conditionalget.rb:25:in
调用'rack (1.6.4)lib/rack/head.rb:13:在call' actionpack (4.2.4) lib/action_dispatch/middleware/params_parser.rb:27:in
调用' actionpack(4.2.4)lib/action_dispatch/middleware/flash。 rb:260:在call' rack (1.6.4) lib/rack/session/abstract/id.rb:225:in
上下文' rack(1.6.4)lib/rack/session/abstract/id.rb:220:incall' actionpack (4.2.4) lib/action_dispatch/middleware/cookies.rb:560:in
呼叫' 了activerecord(4.2.4)LIB/active_record/query_cache.rb:36:在call' activerecord (4.2.4) lib/active_record/connection_adapters/abstract/connection_pool.rb:653:in
呼叫的ActiveRecord(4.2.4)LIB/active_record/migration.rb:377:在呼叫” 的ActiveSupportcall' actionpack (4.2.4) lib/action_dispatch/middleware/callbacks.rb:29:in
块( 4.2.4)LIB/active_support/callbacks.rb:88:在__run_callbacks__' activesupport (4.2.4) lib/active_support/callbacks.rb:778:in
_run_call_callbacks' 的ActiveSupport(4.2.4)LIB/active_support/callbacks.rb:81:在run_callbacks' actionpack (4.2.4) lib/action_dispatch/middleware/callbacks.rb:27:in
呼叫” ActionPack的 (4.2.4)LIB/action_dispatch/middleware/reloader.rb:73:在call' actionpack (4.2.4) lib/action_dispatch/middleware/remote_ip.rb:78:in
中调用'actionpack(4.2。4) LIB/action_dispatch /中间件/ debug_exceptions.rb:17:在call' web-console (2.2.1) lib/web_console/middleware.rb:31:in
呼叫 ' ActionPack的(4.2.4) LIB/action_dispatch /中间件/ show_exceptions.rb:30:在call' railties (4.2.4) lib/rails/rack/logger.rb:38:in
call_app' railties (4.2.4) lib/rails/rack/logger.rb:20:在block in call' activesupport (4.2.4) lib/active_support/tagged_logging.rb:68:in
块中标记' activesupport(4.2.4)lib/active_support/tagged_logging.rb:26:在tagged' activesupport (4.2.4) lib/active_support/tagged_logging.rb:68:in
标签'railties(4.2.4) lib/rails /rack/logger.rb:20:incall' actionpack (4.2.4) lib/action_dispatch/middleware/request_id.rb:21:in
调用'rack(1.6.4) lib/rack/methodoverride.rb:22:在call' rack (1.6.4) lib/rack/runtime.rb:18:in
调用'activesupport(4.2.4) lib/active_support/cache/strategy/local_cache_middleware .rb:28:在call' rack (1.6.4) lib/rack/lock.rb:17:in
调用'actionpack(4.2.4) lib/action_dispatch/middleware/static.rb:116:在call' rack (1.6.4) lib/rack/sendfile.rb:113:in
调用'railties(4.2.4) lib/rails/engine.rb:518:在call' railties (4.2.4) lib/rails/application.rb:165:in
调用'rack(1.6 .4) lib/rack/lock.rb:17:在call' rack (1.6.4) lib/rack/content_length.rb:15:in
调用'rack(1.6.4) lib/rack/handler/webrick.rb:88:inservice' /usr/local/rvm/rubies/ruby-2.2.1/lib/ruby/2.2.0/webrick/httpserver.rb:138:in
service' /usr/local/rvm/rubies /ruby-2.2.1/lib/ruby/2.2.0/webrick/httpserver.rb:94:in在start_thread”
run' /usr/local/rvm/rubies/ruby-2.2.1/lib/ruby/2.2.0/webrick/server.rb:294:in
块如何解决呢?
它看起来像你的Rails是4.2版本。
如果是这样的话,你不应该使用config.i18n
而是I18n
。
见here:
# in config/initializers/locale.rb
# tell the I18n library where to find your translations
I18n.load_path += Dir[Rails.root.join('lib', 'locale', '*.{rb,yml}')]
# set default locale to something other than :en
I18n.default_locale = :pt
正确。谢谢。我是新来的铁轨,我想知道什么是最常用的铁轨版本? –
我确定有很多Rails 3应用程序,但我建议使用最新的稳定版本(如您所做的那样)。现在升级是非常无痛的。 –
你给的例子是当你使用一个不同的文件,然后application.rb。在这种情况下,您使用语言环境初始值设定项,但是如果您使用application.rb,那么config.i18n.load_path应该可以工作。这也在文档中描述。 –