I am trying to start WEBRick for my local developement without any success. Below is the error message that i am getting. Any insight on why it might be failing?
Thanks
C:\Sites\ThinkBlog\crumblr>rails s
=> Booting WEBrick
=> Rails 4.1.4 application starting in development
=> Run `rails server -h` for more startup options
=> Notice: server is listening on all interfaces .
=> Ctrl-C to shutdown server
Exiting
C:/RailsInstaller/Ruby1.9.3/lib/ruby/1.9.1/psych.rb:297:in `initialize': Invalid argume`enter code here`nt - ${::Rails.root}/config/facebook.yml (Errno::EINVAL)
from C:/RailsInstaller/Ruby1.9.3/lib/ruby/1.9.1/psych.rb:297:in `open'
from C:/RailsInstaller/Ruby1.9.3/lib/ruby/1.9.1/psych.rb:297:in `load_file'
from C:/Sites/ThinkBlog/crumblr/config/initializers/abook.rb:1:in `<top (required)>'
from C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/activesupport-4.1.4/lib/active_support/dependencies.rb:241:in `load'
from C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/activesupport-4.1.4/lib/active_support/dependencies.rb:241:in `block in load'
from C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/activesupport-4.1.4/lib/active_support/dependencies.rb:232:in `load_dependency'
from C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/activesupport-4.1.4/lib/active_support/dependencies.rb:241:in `load'
You have interpolated your string incorrectly, the interpolation starts with hash sign (#), not dollar.
You need either to change this string to:
FACEBOOK_CONFIG = YAML.load_file("#{::Rails.root}/config/facebook.yml")[::Rails.env]
Or do it without interpolation at all:
sth = YAML.load_file(Rails.root.join 'config', 'facebook.yml')
Related
I have a rails project which uses mongodb/mongoid and some additional mongodb/mongoid gems:
ruby "2.3.1"
gem 'rails', '4.1.1'
gem 'mongoid'
When I'm trying to run it, I get an exception:
$ bundle exec rails s
/home/alex/.gem/ruby/2.3.1/gems/activesupport-4.1.1/lib/active_support/values/time_zone.rb:285: warning: circular argument reference - now
=> Booting Thin
=> Rails 4.1.1 application starting in development on http://0.0.0.0:3000
=> Run `rails server -h` for more startup options
=> Notice: server is listening on all interfaces (0.0.0.0). Consider using 127.0.0.1 (--binding option)
=> Ctrl-C to shutdown server
Exiting
/home/alex/.rubies/ruby-2.3.1/lib/ruby/2.3.0/psych.rb:377:in `parse': (<unknown>): did not find expected key while parsing a block mapping at line 8 column 7 (Psych::SyntaxError)
from /home/alex/.rubies/ruby-2.3.1/lib/ruby/2.3.0/psych.rb:377:in `parse_stream'
from /home/alex/.gem/ruby/2.3.1/gems/mongoid-4.0.2/lib/mongoid/config/environment.rb:40:in `load_yaml'
from /home/alex/.gem/ruby/2.3.1/gems/mongoid-4.0.2/lib/mongoid/config.rb:83:in `load!'
# ............skipped
from /home/alex/.gem/ruby/2.3.1/gems/railties-4.1.1/lib/rails/initializable.rb:55:in `block in run_initializers'
from /home/alex/.rubies/ruby-2.3.1/lib/ruby/2.3.0/tsort.rb:228:in `block in tsort_each'
from /home/alex/.rubies/ruby-2.3.1/lib/ruby/2.3.0/tsort.rb:350:in `block (2 levels) in each_strongly_connected_component'
from /home/alex/.rubies/ruby-2.3.1/lib/ruby/2.3.0/tsort.rb:431:in `each_strongly_connected_component_from'
from /home/alex/.rubies/ruby-2.3.1/lib/ruby/2.3.0/tsort.rb:349:in `block in each_strongly_connected_component'
# .......... skipped
from /home/alex/.gem/ruby/2.3.1/gems/activesupport-4.1.1/lib/active_support/dependencies.rb:232:in `load_dependency'
from /home/alex/.gem/ruby/2.3.1/gems/activesupport-4.1.1/lib/active_support/dependencies.rb:247:in `require'
from /home/alex/projects/ruby/my_project_123/config.ru:3:in `block in <main>'
from /home/alex/.gem/ruby/2.3.1/gems/rack-1.5.2/lib/rack/builder.rb:55:in `instance_eval'
# ............skipped
from /home/alex/.gem/ruby/2.3.1/gems/railties-4.1.1/lib/rails/commands.rb:17:in `<top (required)>'
from bin/rails:4:in `require'
from bin/rails:4:in `<main>'
What can cause this exception?
Psych is a YAML parser and emitter. The error indicates somewhere in your yml files you have extra spaces (or not enough spaces) before a key value. Check all yml files (Ex: mongoid.yml )for proper syntax. You can validate your yml files Here. For example in the following YAML
key_one:
inner:
- value1
- value2
key_two:
inner:
- value1
- value2
line 7 column 5 has an extra space before a key value
I install ActiveAdmin to my application. And register the model Order to ActiveAdmin
ActiveAdmin.register Order do
But I get the error uninitialized constant Order; it seems ActiveAdmin not found the model.
My Rails.root is
/home/vagrant/vag/shoppe-subao
the models is in:
/home/vagrant/vag/shoppe-subao/vendor/core/app/models/shoppe$ ls
order.rb
Start the rails server and get following error
=> Rails 4.0.1 application starting in development on http://0.0.0.0:3000
=> Run `rails server -h` for more startup options
=> Ctrl-C to shutdown server
/vagrant/shoppe-subao/vendor/core/app/models/shoppe/order
Exiting
/vagrant/shoppe-subao/app/admin/order.rb:3:in `<top (required)>': uninitialized constant Order (NameError)
from /home/vagrant/.bundler/ruby/2.2.0/active_admin-82da3c55cb61/lib/active_admin/application.rb:194:in `block in load'
Add require 'activeadmin' to your active_admin.rb initializer
I am trying to upgrade a rails 2 app to rails3 using rails upgrader gem , But starting the server show following error , what could be the possible reason
$bundle exec rails server
/home/user/.rvm/gems/ruby-1.8.7-head/gems/haml-4.0.5/lib/haml/parser.rb:86: warning: regexp has invalid interval
DEPRECATION WARNING: RAILS_ENV is deprecated. Please use ::Rails.env. (called from /home/user/projects/fedena/config/application.rb:5)
=> Booting Mongrel
=> Rails 3.0.9 application starting in development on http://127.0.0.1:3000
=> Call with -d to detach
=> Ctrl-C to shutdown server
Exiting
/home/user/.rvm/gems/ruby-1.8.7-head/gems/activesupport-3.0.9/lib/active_support/core_ext/module/introspection.rb:70:in `const_get': uninitialized constant ActionView::ActionViewError (NameError)
from /home/user/.rvm/gems/ruby-1.8.7-head/gems/activesupport-3.0.9/lib/active_support/core_ext/module/introspection.rb:70:in `local_constants'
from /home/user/.rvm/gems/ruby-1.8.7-head/gems/activesupport-3.0.9/lib/active_support/core_ext/module/introspection.rb:70:in `each'
from /home/user/.rvm/gems/ruby-1.8.7-head/gems/activesupport-3.0.9/lib/active_support/core_ext/module/introspection.rb:70:in `local_constants'
from /home/user/.rvm/gems/ruby-1.8.7-head/gems/activesupport-3.0.9/lib/active_support/core_ext/module/introspection.rb:68:in `each'
from /home/user/.rvm/gems/ruby-1.8.7-head/gems/activesupport-3.0.9/lib/active_support/core_ext/module/introspection.rb:68:in `local_constants'
from /home/user/.rvm/gems/ruby-1.8.7-head/gems/activesupport-3.0.9/lib/active_support/core_ext/module/introspection.rb:86:in `local_constant_names'
from /home/user/projects/fedena/config.ru:3
from /home/user/.rvm/gems/ruby-1.8.7-head/gems/rack-1.2.8/lib/rack/builder.rb:46:in `instance_eval'
from /home/user/.rvm/gems/ruby-1.8.7-head/gems/rack-1.2.8/lib/rack/builder.rb:46:in `initialize'
from /home/user/projects/fedena/config.ru:1:in `new'
from /home/user/projects/fedena/config.ru:1
I have a rails application which works built on my test environment.
ruby -v => 1.9.3p194
rails -v => 3.2.12
gem -v => 1.8.23
On the server I wish to deploy to, the outputs are the following:
ruby -v => 1.9.3p0
rails -v => 3.2.12
gem -v => 1.8.15
I've started with a fresh installation of the server but I cannot get the server version of ruby and gem to match.
Additionally when I run rails s on the server (just to test) this is the failed output:
rails s
=> Booting WEBrick
=> Rails 3.2.12 application starting in development on http://0.0.0.0:3000
=> Call with -d to detach
=> Ctrl-C to shutdown server
Exiting
/var/lib/gems/1.8/gems/activesupport-3.2.12/lib/active_support/dependencies.rb:245:in `load': /var/www/New/confed ':', expecting kEND (SyntaxError)
match '/about', to: 'static_pages#about'
^
/var/www/New/config/routes.rb:6: syntax error, unexpected ':', expecting kEND
match '/cv', to: 'static_pages#cv'
^
from /var/lib/gems/1.8/gems/activesupport-3.2.12/lib/active_support/dependencies.rb:245:in `load'
from /var/lib/gems/1.8/gems/activesupport-3.2.12/lib/active_support/dependencies.rb:236:in `load_dependency'
from /var/lib/gems/1.8/gems/activesupport-3.2.12/lib/active_support/dependencies.rb:245:in `load'
from /var/lib/gems/1.8/gems/railties-3.2.12/lib/rails/application/routes_reloader.rb:40:in `load_paths'
from /var/lib/gems/1.8/gems/railties-3.2.12/lib/rails/application/routes_reloader.rb:40:in `each'
from /var/lib/gems/1.8/gems/railties-3.2.12/lib/rails/application/routes_reloader.rb:40:in `load_paths'
from /var/lib/gems/1.8/gems/railties-3.2.12/lib/rails/application/routes_reloader.rb:16:in `reload!'
from /var/lib/gems/1.8/gems/railties-3.2.12/lib/rails/application/routes_reloader.rb:26:in `updater'
from /var/lib/gems/1.8/gems/activesupport-3.2.12/lib/active_support/file_update_checker.rb:78:in `call'
from /var/lib/gems/1.8/gems/activesupport-3.2.12/lib/active_support/file_update_checker.rb:78:in `execute'
from /var/lib/gems/1.8/gems/railties-3.2.12/lib/rails/application/routes_reloader.rb:27:in `updater'
from /var/lib/gems/1.8/gems/railties-3.2.12/lib/rails/application/routes_reloader.rb:7:in `execute_if_updated'
from /var/lib/gems/1.8/gems/railties-3.2.12/lib/rails/application/finisher.rb:66
from /var/lib/gems/1.8/gems/railties-3.2.12/lib/rails/initializable.rb:30:in `instance_exec'
from /var/lib/gems/1.8/gems/railties-3.2.12/lib/rails/initializable.rb:30:in `run'
from /var/lib/gems/1.8/gems/railties-3.2.12/lib/rails/initializable.rb:55:in `run_initializers'
from /var/lib/gems/1.8/gems/railties-3.2.12/lib/rails/initializable.rb:54:in `each'
from /var/lib/gems/1.8/gems/railties-3.2.12/lib/rails/initializable.rb:54:in `run_initializers'
from /var/lib/gems/1.8/gems/railties-3.2.12/lib/rails/application.rb:136:in `initialize!'
from /var/lib/gems/1.8/gems/railties-3.2.12/lib/rails/railtie/configurable.rb:30:in `send'
from /var/lib/gems/1.8/gems/railties-3.2.12/lib/rails/railtie/configurable.rb:30:in `method_missing'
from /var/www/New/config/environment.rb:5
from /var/www/New/config.ru:3:in `require'
from /var/www/New/config.ru:3
from /var/lib/gems/1.8/gems/rack-1.4.5/lib/rack/builder.rb:51:in `instance_eval'
from /var/lib/gems/1.8/gems/rack-1.4.5/lib/rack/builder.rb:51:in `initialize'
from /var/www/New/config.ru:0:in `new'
from /var/www/New/config.ru:0
I've looked on my test system and I don't have /var/lib/gems/1.8 I only have /var/lib/gems/1.9.1
From your stack trace, it actually looks like you're running against Ruby 1.8, which doesn't support the simplified hash syntax symbol: value whereas 1.8 only had :symbol => value.
You can use rvm or rbenv to manage multiple ruby versions. rbenv imo is the better of the two when working with Rails.
Answering Ryan's question of why I think rbenv > rvm is based on personal feelings. I've found rbenv easy to work with, easy to understand and conceptualize how it was working, and I haven't run into a scenario where it has failed me. Additionally the source code is quite readable, which made my one foray for configuration easy to do.
After I install the custom-err-msg plugin, I get an error when I try to run rails server:
$ rails server
=> Booting WEBrick
=> Rails 3.0.3 application starting in development on http://0.0.0.0:3000
=> Call with -d to detach
=> Ctrl-C to shutdown server
Exiting
/home/jason/rails/snip/vendor/plugins/custom-err-msg/init.rb:3: uninitialized constant ActiveRecord::Errors (NameError)
from /usr/lib/ruby/gems/1.8/gems/railties-3.0.3/lib/rails/plugin.rb:81
from /usr/lib/ruby/gems/1.8/gems/railties-3.0.3/lib/rails/initializable.rb:25:in `instance_exec'
from /usr/lib/ruby/gems/1.8/gems/railties-3.0.3/lib/rails/initializable.rb:25:in `run'
from /usr/lib/ruby/gems/1.8/gems/railties-3.0.3/lib/rails/initializable.rb:50:in `run_initializers'
from /usr/lib/ruby/gems/1.8/gems/railties-3.0.3/lib/rails/initializable.rb:49:in `each'
from /usr/lib/ruby/gems/1.8/gems/railties-3.0.3/lib/rails/initializable.rb:49:in `run_initializers'
from /usr/lib/ruby/gems/1.8/gems/railties-3.0.3/lib/rails/application.rb:134:in `initialize!'
from /usr/lib/ruby/gems/1.8/gems/railties-3.0.3/lib/rails/application.rb:77:in `send'
from /usr/lib/ruby/gems/1.8/gems/railties-3.0.3/lib/rails/application.rb:77:in `method_missing'
from /home/jason/rails/snip/config/environment.rb:5
from /home/jason/rails/snip/config.ru:3:in `require'
from /home/jason/rails/snip/config.ru:3
from /usr/lib/ruby/gems/1.8/gems/rack-1.2.1/lib/rack/builder.rb:46:in `instance_eval'
from /usr/lib/ruby/gems/1.8/gems/rack-1.2.1/lib/rack/builder.rb:46:in `initialize'
from /home/jason/rails/snip/config.ru:1:in `new'
from /home/jason/rails/snip/config.ru:1
Any idea why this is happening?
Here's an updated version that will work with Rails 3.
https://github.com/seansawyer/custom-err-msg
To fix the undefined method keys for nil:NilClass error, a method in lib/custom_error_message.rb needs to be changed to this:
def starts_with_humanized_column_followed_by_circumflex?(message)
keys.any? do |column|
humanized = #base.class.human_attribute_name column.to_s.split('.').last.to_s
message.match(/^#{humanized} \^/)
end
end
Someone, please send him a pull request!
This plugin is not compatible with Rails 3. I would recommend finding a fork that is or forking it and updating yourself.