main的局部变量或方法`config’:Object(NameError)
我正在关注整合Omniauth Twitter + Devise http://sourcey.com/rails-4-omniauth-using-devise-with-twitter-facebook-and-linkedin/的这篇文章,我遇到了阻碍我的问题启动我的rails应用程序。
/Users/javier/Desktop/definitive/config/environment.rb:8:in `': undefined local variable or method `config' for main:Object (NameError) from /Users/javier/.rvm/gems/ruby-2.1.2/gems/activesupport-4.1.1/lib/active_support/dependencies.rb:247:in `require' from /Users/javier/.rvm/gems/ruby-2.1.2/gems/activesupport-4.1.1/lib/active_support/dependencies.rb:247:in `block in require' from /Users/javier/.rvm/gems/ruby-2.1.2/gems/activesupport-4.1.1/lib/active_support/dependencies.rb:232:in `load_dependency' from /Users/javier/.rvm/gems/ruby-2.1.2/gems/activesupport-4.1.1/lib/active_support/dependencies.rb:247:in `require' from /Users/javier/Desktop/definitive/config.ru:3:in `block in ' from /Users/javier/.rvm/gems/ruby-2.1.2/gems/rack-1.5.2/lib/rack/builder.rb:55:in `instance_eval' from /Users/javier/.rvm/gems/ruby-2.1.2/gems/rack-1.5.2/lib/rack/builder.rb:55:in `initialize' from /Users/javier/Desktop/definitive/config.ru:in `new' from /Users/javier/Desktop/definitive/config.ru:in `' from /Users/javier/.rvm/gems/ruby-2.1.2/gems/rack-1.5.2/lib/rack/builder.rb:49:in `eval' from /Users/javier/.rvm/gems/ruby-2.1.2/gems/rack-1.5.2/lib/rack/builder.rb:49:in `new_from_string' from /Users/javier/.rvm/gems/ruby-2.1.2/gems/rack-1.5.2/lib/rack/builder.rb:40:in `parse_file' from /Users/javier/.rvm/gems/ruby-2.1.2/gems/rack-1.5.2/lib/rack/server.rb:277:in `build_app_and_options_from_config' from /Users/javier/.rvm/gems/ruby-2.1.2/gems/rack-1.5.2/lib/rack/server.rb:199:in `app' from /Users/javier/.rvm/gems/ruby-2.1.2/gems/railties-4.1.1/lib/rails/commands/server.rb:50:in `app' from /Users/javier/.rvm/gems/ruby-2.1.2/gems/rack-1.5.2/lib/rack/server.rb:314:in `wrapped_app' from /Users/javier/.rvm/gems/ruby-2.1.2/gems/railties-4.1.1/lib/rails/commands/server.rb:130:in `log_to_stdout' from /Users/javier/.rvm/gems/ruby-2.1.2/gems/railties-4.1.1/lib/rails/commands/server.rb:67:in `start' from /Users/javier/.rvm/gems/ruby-2.1.2/gems/railties-4.1.1/lib/rails/commands/commands_tasks.rb:81:in `block in server' from /Users/javier/.rvm/gems/ruby-2.1.2/gems/railties-4.1.1/lib/rails/commands/commands_tasks.rb:76:in `tap' from /Users/javier/.rvm/gems/ruby-2.1.2/gems/railties-4.1.1/lib/rails/commands/commands_tasks.rb:76:in `server' from /Users/javier/.rvm/gems/ruby-2.1.2/gems/railties-4.1.1/lib/rails/commands/commands_tasks.rb:40:in `run_command!' from /Users/javier/.rvm/gems/ruby-2.1.2/gems/railties-4.1.1/lib/rails/commands.rb:17:in `' from /Users/javier/Desktop/definitive/bin/rails:8:in `require' from /Users/javier/Desktop/definitive/bin/rails:8:in `' from /Users/javier/.rvm/gems/ruby-2.1.2/gems/spring-1.1.3/lib/spring/client/rails.rb:27:in `load' from /Users/javier/.rvm/gems/ruby-2.1.2/gems/spring-1.1.3/lib/spring/client/rails.rb:27:in `call' from /Users/javier/.rvm/gems/ruby-2.1.2/gems/spring-1.1.3/lib/spring/client/command.rb:7:in `call' from /Users/javier/.rvm/gems/ruby-2.1.2/gems/spring-1.1.3/lib/spring/client.rb:26:in `run' from /Users/javier/.rvm/gems/ruby-2.1.2/gems/spring-1.1.3/bin/spring:48:in `' from /Users/javier/.rvm/gems/ruby-2.1.2/gems/spring-1.1.3/lib/spring/binstub.rb:11:in `load' from /Users/javier/.rvm/gems/ruby-2.1.2/gems/spring-1.1.3/lib/spring/binstub.rb:11:in `' from /Users/javier/Desktop/definitive/bin/spring:16:in `require' from /Users/javier/Desktop/definitive/bin/spring:16:in `' from bin/rails:3:in `load' from bin/rails:3:in `'
我想问题是在config/environment.rb
的第8行,但找不到正确的修复。 是否有可能将environment.rb包含在’config / environments /’中?
文章指出你应该把一些代码放在:
config/environments/[environment].rb
其中[environment].rb
用于表示以下文件之一:
config/environments/development.rb config/environments/production.rb config/environments/test.rb
如果您希望在不同的环境中进行相同的设置,也可以将代码放在config/application.rb
。
显示的代码行以config.*
开头,它们应放在Rails.application.configure do
块中。
典型的Rails 4应用程序中的config/environment.rb
只是一个require
和Rails.application.initialize!
,不应该需要修改。
如果你在environment.rb
有config.xxx
删除它并将它们添加到development.rb
:
Rails.application.configure do config.xxx end
我也遇到过这样的错误(
NameError: undefined local variable or method `server' for main:Object from (irb):1 from C:/RailsInstaller/Ruby2.2.0/bin/irb:11:in `'),
)
也许是因为我是铁轨上的ruby新人。 因此,我没有从直接命令行启动rails服务器,而是尝试从IRB内部启动,因此我收到了错误。
当我从IRB出来并再次从CMD启动服务器时,它开始顺利。
- 记得用OmniAuth登录
- Google OAuth 2 redirect_uri_mismatch – OmniAuth Rails应用
- 允许用户在使用Twitter登录时输入他们的电子邮件(OmniAuth)
- authlogic UserSession.create(@user)给予unauthorized_record
- OmniAuth Facebook过期令牌错误
- Gitlab和omniauth-pam身份validation
- Rails 5设计omniauth-facebook错误:抱歉,出了点问题
- Rails 4 Devise / Omniauth电子邮件存在于数据库错误中
- Devise + Omniauth Facebook重定向到注册