nil:NilClass 的未定义方法 `default_locale='
undefined method `default_locale=' for nil:NilClass
我正在尝试使我的设计国际化应用程序,但我在某些方面遇到了困难。我安装了 i18n gem 并创建了 devise.pt-BR.yml
文件并在 application.rb
中写入
config.i18n.default_locale = :'pt-BR'
好的,但是当我尝试在我的应用程序中执行任何操作时,我收到以下错误消息:
undefined method `default_locale=' for nil:NilClass
Rails.root: /home/ubuntu/workspace/aqueleprojetoprivate/medicos
Application Trace | Framework Trace | Full Trace
app/controllers/application_controller.rb:8:in
<class:ApplicationController>'
app/controllers/application_controller.rb:1:in
'
activesupport (4.2.4) lib/active_support/dependencies.rb:457:in load'
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:in 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:in 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:in const_missing'
app/controllers/home_controller.rb:1:in
'
activesupport (4.2.4) lib/active_support/dependencies.rb:457:in load'
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:in 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:in 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:in const_missing'
activesupport (4.2.4) lib/active_support/inflector/methods.rb:261:in
const_get' activesupport (4.2.4)
lib/active_support/inflector/methods.rb:261:in block in constantize'
activesupport (4.2.4) lib/active_support/inflector/methods.rb:259:in
each' activesupport (4.2.4)
lib/active_support/inflector/methods.rb:259:in inject' activesupport
(4.2.4) lib/active_support/inflector/methods.rb:259:in
constantize'
activesupport (4.2.4) lib/active_support/dependencies.rb:566:in get'
activesupport (4.2.4) lib/active_support/dependencies.rb:597:in
constantize' actionpack (4.2.4)
lib/action_dispatch/routing/route_set.rb:72:in 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:in serve' actionpack
(4.2.4) lib/action_dispatch/journey/router.rb:43:in
block in serve'
actionpack (4.2.4) lib/action_dispatch/journey/router.rb:30:in each'
actionpack (4.2.4) lib/action_dispatch/journey/router.rb:30:in
serve'
actionpack (4.2.4) lib/action_dispatch/routing/route_set.rb:821:in
call' warden (1.2.4) lib/warden/manager.rb:35:in
block in call'
warden (1.2.4) lib/warden/manager.rb:34:in catch' warden (1.2.4)
lib/warden/manager.rb:34:in
call' rack (1.6.4) lib/rack/etag.rb:24:in
call' rack (1.6.4) lib/rack/conditionalget.rb:25:in
call' rack
(1.6.4) lib/rack/head.rb:13:in call' actionpack (4.2.4)
lib/action_dispatch/middleware/params_parser.rb:27:in
call'
actionpack (4.2.4) lib/action_dispatch/middleware/flash.rb:260:in
call' rack (1.6.4) lib/rack/session/abstract/id.rb:225:in
context'
rack (1.6.4) lib/rack/session/abstract/id.rb:220:in call' actionpack
(4.2.4) lib/action_dispatch/middleware/cookies.rb:560:in
call'
activerecord (4.2.4) lib/active_record/query_cache.rb:36:in call'
activerecord (4.2.4)
lib/active_record/connection_adapters/abstract/connection_pool.rb:653:in
call' activerecord (4.2.4) lib/active_record/migration.rb:377:in
call' actionpack (4.2.4)
lib/action_dispatch/middleware/callbacks.rb:29:in
block in call'
activesupport (4.2.4) lib/active_support/callbacks.rb:88:in
__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:in
run_callbacks' actionpack (4.2.4)
lib/action_dispatch/middleware/callbacks.rb:27:in
call' actionpack
(4.2.4) lib/action_dispatch/middleware/reloader.rb:73:in call'
actionpack (4.2.4) lib/action_dispatch/middleware/remote_ip.rb:78:in
call' actionpack (4.2.4)
lib/action_dispatch/middleware/debug_exceptions.rb:17:in call'
web-console (2.2.1) lib/web_console/middleware.rb:31:in
call'
actionpack (4.2.4)
lib/action_dispatch/middleware/show_exceptions.rb:30:in call'
railties (4.2.4) lib/rails/rack/logger.rb:38:in
call_app' railties
(4.2.4) lib/rails/rack/logger.rb:20:in block in call' activesupport
(4.2.4) lib/active_support/tagged_logging.rb:68:in
block in tagged'
activesupport (4.2.4) lib/active_support/tagged_logging.rb:26:in
tagged' activesupport (4.2.4)
lib/active_support/tagged_logging.rb:68:in
tagged' railties (4.2.4)
lib/rails/rack/logger.rb:20:in call' actionpack (4.2.4)
lib/action_dispatch/middleware/request_id.rb:21:in
call' rack (1.6.4)
lib/rack/methodoverride.rb:22:in call' rack (1.6.4)
lib/rack/runtime.rb:18:in
call' activesupport (4.2.4)
lib/active_support/cache/strategy/local_cache_middleware.rb:28:in
call' rack (1.6.4) lib/rack/lock.rb:17:in
call' actionpack (4.2.4)
lib/action_dispatch/middleware/static.rb:116:in call' rack (1.6.4)
lib/rack/sendfile.rb:113:in
call' railties (4.2.4)
lib/rails/engine.rb:518:in call' railties (4.2.4)
lib/rails/application.rb:165:in
call' rack (1.6.4)
lib/rack/lock.rb:17:in call' rack (1.6.4)
lib/rack/content_length.rb:15:in
call' rack (1.6.4)
lib/rack/handler/webrick.rb:88:in service'
/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
run'
/usr/local/rvm/rubies/ruby-2.2.1/lib/ruby/2.2.0/webrick/server.rb:294:in
block in start_thread'
我该如何解决?
看起来你的 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
我正在尝试使我的设计国际化应用程序,但我在某些方面遇到了困难。我安装了 i18n gem 并创建了 devise.pt-BR.yml
文件并在 application.rb
config.i18n.default_locale = :'pt-BR'
好的,但是当我尝试在我的应用程序中执行任何操作时,我收到以下错误消息:
undefined method `default_locale=' for nil:NilClass
Rails.root: /home/ubuntu/workspace/aqueleprojetoprivate/medicos Application Trace | Framework Trace | Full Trace
app/controllers/application_controller.rb:8:in
<class:ApplicationController>' app/controllers/application_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:inconst_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:inconst_missing' activesupport (4.2.4) lib/active_support/inflector/methods.rb:261:in
const_get' activesupport (4.2.4) lib/active_support/inflector/methods.rb:261:inblock in constantize' activesupport (4.2.4) lib/active_support/inflector/methods.rb:259:in
each' activesupport (4.2.4) lib/active_support/inflector/methods.rb:259:ininject' 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:incontroller_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:inserve' actionpack (4.2.4) lib/action_dispatch/journey/router.rb:43:in
block in serve' actionpack (4.2.4) lib/action_dispatch/journey/router.rb:30:ineach' actionpack (4.2.4) lib/action_dispatch/journey/router.rb:30:in
serve' actionpack (4.2.4) lib/action_dispatch/routing/route_set.rb:821:incall' warden (1.2.4) lib/warden/manager.rb:35:in
block in call' warden (1.2.4) lib/warden/manager.rb:34:incatch' warden (1.2.4) lib/warden/manager.rb:34:in
call' rack (1.6.4) lib/rack/etag.rb:24:incall' rack (1.6.4) lib/rack/conditionalget.rb:25:in
call' rack (1.6.4) lib/rack/head.rb:13:incall' actionpack (4.2.4) lib/action_dispatch/middleware/params_parser.rb:27:in
call' actionpack (4.2.4) lib/action_dispatch/middleware/flash.rb:260:incall' rack (1.6.4) lib/rack/session/abstract/id.rb:225:in
context' rack (1.6.4) lib/rack/session/abstract/id.rb:220:incall' actionpack (4.2.4) lib/action_dispatch/middleware/cookies.rb:560:in
call' activerecord (4.2.4) lib/active_record/query_cache.rb:36:incall' activerecord (4.2.4) lib/active_record/connection_adapters/abstract/connection_pool.rb:653:in
call' activerecord (4.2.4) lib/active_record/migration.rb:377:incall' actionpack (4.2.4) lib/action_dispatch/middleware/callbacks.rb:29:in
block in call' activesupport (4.2.4) lib/active_support/callbacks.rb:88:in__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:inrun_callbacks' actionpack (4.2.4) lib/action_dispatch/middleware/callbacks.rb:27:in
call' actionpack (4.2.4) lib/action_dispatch/middleware/reloader.rb:73:incall' actionpack (4.2.4) lib/action_dispatch/middleware/remote_ip.rb:78:in
call' actionpack (4.2.4) lib/action_dispatch/middleware/debug_exceptions.rb:17:incall' web-console (2.2.1) lib/web_console/middleware.rb:31:in
call' actionpack (4.2.4) lib/action_dispatch/middleware/show_exceptions.rb:30:incall' railties (4.2.4) lib/rails/rack/logger.rb:38:in
call_app' railties (4.2.4) lib/rails/rack/logger.rb:20:inblock in call' activesupport (4.2.4) lib/active_support/tagged_logging.rb:68:in
block in tagged' activesupport (4.2.4) lib/active_support/tagged_logging.rb:26:intagged' activesupport (4.2.4) lib/active_support/tagged_logging.rb:68:in
tagged' railties (4.2.4) lib/rails/rack/logger.rb:20:incall' actionpack (4.2.4) lib/action_dispatch/middleware/request_id.rb:21:in
call' rack (1.6.4) lib/rack/methodoverride.rb:22:incall' rack (1.6.4) lib/rack/runtime.rb:18:in
call' activesupport (4.2.4) lib/active_support/cache/strategy/local_cache_middleware.rb:28:incall' rack (1.6.4) lib/rack/lock.rb:17:in
call' actionpack (4.2.4) lib/action_dispatch/middleware/static.rb:116:incall' rack (1.6.4) lib/rack/sendfile.rb:113:in
call' railties (4.2.4) lib/rails/engine.rb:518:incall' railties (4.2.4) lib/rails/application.rb:165:in
call' rack (1.6.4) lib/rack/lock.rb:17:incall' rack (1.6.4) lib/rack/content_length.rb:15:in
call' 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:inrun' /usr/local/rvm/rubies/ruby-2.2.1/lib/ruby/2.2.0/webrick/server.rb:294:in
block in start_thread'
我该如何解决?
看起来你的 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