你好,出现 undefined method `[]' for nil:NilClass错误请教。
chuanjiesun opened this issue · comments
在rake db:schema:load出现下面错误,请教怎么解决?
rake db:schema:load --trace
** Invoke db:schema:load (first_time)
** Invoke environment (first_time)
** Execute environment
rake aborted!
NoMethodError: undefined method []' for nil:NilClass /usr/share/fofa-clone/config/initializers/elasticsearch.rb:6:in
<top (required)>'
/var/lib/gems/2.1.0/gems/activesupport-4.2.3/lib/active_support/dependencies.rb:268:in load' /var/lib/gems/2.1.0/gems/activesupport-4.2.3/lib/active_support/dependencies.rb:268:in
block in load'
/var/lib/gems/2.1.0/gems/activesupport-4.2.3/lib/active_support/dependencies.rb:240:in load_dependency' /var/lib/gems/2.1.0/gems/activesupport-4.2.3/lib/active_support/dependencies.rb:268:in
load'
/var/lib/gems/2.1.0/gems/railties-4.2.3/lib/rails/engine.rb:652:in block in load_config_initializer' /var/lib/gems/2.1.0/gems/activesupport-4.2.3/lib/active_support/notifications.rb:166:in
instrument'
/var/lib/gems/2.1.0/gems/railties-4.2.3/lib/rails/engine.rb:651:in load_config_initializer' /var/lib/gems/2.1.0/gems/railties-4.2.3/lib/rails/engine.rb:616:in
block (2 levels) in class:Engine'
/var/lib/gems/2.1.0/gems/railties-4.2.3/lib/rails/engine.rb:615:in each' /var/lib/gems/2.1.0/gems/railties-4.2.3/lib/rails/engine.rb:615:in
block in class:Engine'
/var/lib/gems/2.1.0/gems/railties-4.2.3/lib/rails/initializable.rb:30:in instance_exec' /var/lib/gems/2.1.0/gems/railties-4.2.3/lib/rails/initializable.rb:30:in
run'
/var/lib/gems/2.1.0/gems/railties-4.2.3/lib/rails/initializable.rb:55:in block in run_initializers' /usr/lib/ruby/2.1.0/tsort.rb:226:in
block in tsort_each'
/usr/lib/ruby/2.1.0/tsort.rb:348:in block (2 levels) in each_strongly_connected_component' /usr/lib/ruby/2.1.0/tsort.rb:418:in
block (2 levels) in each_strongly_connected_component_from'
/usr/lib/ruby/2.1.0/tsort.rb:427:in each_strongly_connected_component_from' /usr/lib/ruby/2.1.0/tsort.rb:417:in
block in each_strongly_connected_component_from'
/var/lib/gems/2.1.0/gems/railties-4.2.3/lib/rails/initializable.rb:44:in each' /var/lib/gems/2.1.0/gems/railties-4.2.3/lib/rails/initializable.rb:44:in
tsort_each_child'
/usr/lib/ruby/2.1.0/tsort.rb:411:in call' /usr/lib/ruby/2.1.0/tsort.rb:411:in
each_strongly_connected_component_from'
/usr/lib/ruby/2.1.0/tsort.rb:347:in block in each_strongly_connected_component' /usr/lib/ruby/2.1.0/tsort.rb:345:in
each'
/usr/lib/ruby/2.1.0/tsort.rb:345:in call' /usr/lib/ruby/2.1.0/tsort.rb:345:in
each_strongly_connected_component'
/usr/lib/ruby/2.1.0/tsort.rb:224:in tsort_each' /usr/lib/ruby/2.1.0/tsort.rb:205:in
tsort_each'
/var/lib/gems/2.1.0/gems/railties-4.2.3/lib/rails/initializable.rb:54:in run_initializers' /var/lib/gems/2.1.0/gems/railties-4.2.3/lib/rails/application.rb:352:in
initialize!'
/var/lib/gems/2.1.0/gems/railties-4.2.3/lib/rails/railtie.rb:194:in public_send' /var/lib/gems/2.1.0/gems/railties-4.2.3/lib/rails/railtie.rb:194:in
method_missing'
/usr/share/fofa-clone/config/environment.rb:5:in <top (required)>' /var/lib/gems/2.1.0/gems/activesupport-4.2.3/lib/active_support/dependencies.rb:274:in
require'
/var/lib/gems/2.1.0/gems/activesupport-4.2.3/lib/active_support/dependencies.rb:274:in block in require' /var/lib/gems/2.1.0/gems/activesupport-4.2.3/lib/active_support/dependencies.rb:240:in
load_dependency'
/var/lib/gems/2.1.0/gems/activesupport-4.2.3/lib/active_support/dependencies.rb:274:in require' /var/lib/gems/2.1.0/gems/railties-4.2.3/lib/rails/application.rb:328:in
require_environment!'
/var/lib/gems/2.1.0/gems/railties-4.2.3/lib/rails/application.rb:457:in block in run_tasks_blocks' /var/lib/gems/2.1.0/gems/rake-10.4.2/lib/rake/task.rb:240:in
call'
/var/lib/gems/2.1.0/gems/rake-10.4.2/lib/rake/task.rb:240:in block in execute' /var/lib/gems/2.1.0/gems/rake-10.4.2/lib/rake/task.rb:235:in
each'
/var/lib/gems/2.1.0/gems/rake-10.4.2/lib/rake/task.rb:235:in execute' /var/lib/gems/2.1.0/gems/rake-10.4.2/lib/rake/task.rb:179:in
block in invoke_with_call_chain'
/usr/lib/ruby/2.1.0/monitor.rb:211:in mon_synchronize' /var/lib/gems/2.1.0/gems/rake-10.4.2/lib/rake/task.rb:172:in
invoke_with_call_chain'
/var/lib/gems/2.1.0/gems/rake-10.4.2/lib/rake/task.rb:201:in block in invoke_prerequisites' /var/lib/gems/2.1.0/gems/rake-10.4.2/lib/rake/task.rb:199:in
each'
/var/lib/gems/2.1.0/gems/rake-10.4.2/lib/rake/task.rb:199:in invoke_prerequisites' /var/lib/gems/2.1.0/gems/rake-10.4.2/lib/rake/task.rb:178:in
block in invoke_with_call_chain'
/usr/lib/ruby/2.1.0/monitor.rb:211:in mon_synchronize' /var/lib/gems/2.1.0/gems/rake-10.4.2/lib/rake/task.rb:172:in
invoke_with_call_chain'
/var/lib/gems/2.1.0/gems/rake-10.4.2/lib/rake/task.rb:165:in invoke' /var/lib/gems/2.1.0/gems/rake-10.4.2/lib/rake/application.rb:150:in
invoke_task'
/var/lib/gems/2.1.0/gems/rake-10.4.2/lib/rake/application.rb:106:in block (2 levels) in top_level' /var/lib/gems/2.1.0/gems/rake-10.4.2/lib/rake/application.rb:106:in
each'
/var/lib/gems/2.1.0/gems/rake-10.4.2/lib/rake/application.rb:106:in block in top_level' /var/lib/gems/2.1.0/gems/rake-10.4.2/lib/rake/application.rb:115:in
run_with_threads'
/var/lib/gems/2.1.0/gems/rake-10.4.2/lib/rake/application.rb:100:in top_level' /var/lib/gems/2.1.0/gems/rake-10.4.2/lib/rake/application.rb:78:in
block in run'
/var/lib/gems/2.1.0/gems/rake-10.4.2/lib/rake/application.rb:176:in standard_exception_handling' /var/lib/gems/2.1.0/gems/rake-10.4.2/lib/rake/application.rb:75:in
run'
/var/lib/gems/2.1.0/gems/rake-10.4.2/bin/rake:33:in <top (required)>' /usr/local/bin/rake:23:in
load'
/usr/local/bin/rake:23:in `
Tasks: TOP => db:schema:load => environment
这个是你没有在config/database.yml 里配置 elasticsearch 选项导致的,
参考下示例:
development:
adapter: mysql2
encoding: utf8
database: webdb
pool: 5
username: root
password:
host: localhost
secure_auth: false
#socket: /var/lib/mysql/mysql.sock
redis:
host: localhost
port: 6379
elasticsearch:
host: localhost
port: 9200