Приложение Rails не запускается

#ruby-on-rails #ruby #ruby-on-rails-3

#ruby-on-rails #ruby #ruby-on-rails-3

Вопрос:

У меня есть новое приложение, которое выдает мне ошибки, когда я делаю

 rails server
  

Вот ошибка:

 /home/agenadinik/.rvm/gems/ruby-1.9.2-p180/gems/railties-3.0.7/lib/rails/script_rails_loader.rb:11: warning: Insecure world writable dir /home/agenadinik in PATH, mode 040777
/home/agenadinik/.rvm/gems/ruby-1.9.2-p180/gems/bundler-1.0.12/lib/bundler/runtime.rb:136: warning: Insecure world writable dir /home/agenadinik in PATH, mode 040777
=> Booting WEBrick
=> Rails 3.0.7 application starting in development on http://0.0.0.0:3000
=> Call with -d to detach
=> Ctrl-C to shutdown server
Exiting
/home/agenadinik/.rvm/gems/ruby-1.9.2-p180/gems/rack-1.2.2/lib/rack/builder.rb:35:in `eval': /home/agenadinik/workspace/udfr/config.ru:6: syntax error, unexpected keyword_end, expecting ')' (SyntaxError)
    from /home/agenadinik/.rvm/gems/ruby-1.9.2-p180/gems/rack-1.2.2/lib/rack/builder.rb:35:in `parse_file'
    from /home/agenadinik/.rvm/gems/ruby-1.9.2-p180/gems/rack-1.2.2/lib/rack/server.rb:162:in `app'
    from /home/agenadinik/.rvm/gems/ruby-1.9.2-p180/gems/rack-1.2.2/lib/rack/server.rb:248:in `wrapped_app'
    from /home/agenadinik/.rvm/gems/ruby-1.9.2-p180/gems/rack-1.2.2/lib/rack/server.rb:213:in `start'
    from /home/agenadinik/.rvm/gems/ruby-1.9.2-p180/gems/railties-3.0.7/lib/rails/commands/server.rb:65:in `start'
    from /home/agenadinik/.rvm/gems/ruby-1.9.2-p180/gems/railties-3.0.7/lib/rails/commands.rb:30:in `block in <top (required)>'
    from /home/agenadinik/.rvm/gems/ruby-1.9.2-p180/gems/railties-3.0.7/lib/rails/commands.rb:27:in `tap'
    from /home/agenadinik/.rvm/gems/ruby-1.9.2-p180/gems/railties-3.0.7/lib/rails/commands.rb:27:in `<top (required)>'
    from script/rails:6:in `require'
    from script/rails:6:in `<main>'
  

Кажется, он жалуется на мой config.ru файл. Вот оно:

 # This file is used by Rack-based servers to start the application.

require ::File.expand_path('../config/environment',  __FILE__)
run Udfr::Application
  

Вот мой файл environment.rb:

 # Load the rails application
require File.join(File.dirname(__FILE__), 'boot')
require File.expand_path('../application', __FILE__)

if RUBY_PLATFORM =~ /java/
  require 'rubygems'
  RAILS_CONNECTION_ADAPTERS = %w(jdbc)
end

# Initialize the rails application
Rails::Initializer.run do |config|
Udfr::Application.initialize!
  

Я изменил этот файл в соответствии с этими инструкциями:
http://www.digitalsanctum.com/2007/07/24/jruby-deploying-a-rails-application-on-tomcat/
Есть идеи, в чем проблема?

Комментарии:

1. Можете ли вы также включить свой файл environment.rb?

2. Это действительно весь ваш environment.rb файл? Похоже, что в конце отсутствует end , если это. Также: вызов initialize! в нем неправильный, это не то, что environment.rb делает… application.rb делает это.

3. Похоже, в вашем файле какая-то синтаксическая ошибка, скорее всего, скобка, которая не была закрыта. Вы можете протестировать отдельные файлы, чтобы увидеть, может ли интерпретатор Ruby работать с ними, например: ruby config.ru если он жалуется на что-то другое, кроме синтаксиса, синтаксис допустим.

Ответ №1:

Инструкции, которым вы следовали, предназначены для Rails 2 и не будут работать с вашим приложением Rails 3.

Обновленные инструкции по запуску Ruby on Rails для работы с jruby заключаются в редактировании вашего gemfile и размещении там ваших требований к gem.

В Gemfile :

 if defined?(JRUBY_VERSION)
  gem 'activerecord-jdbc-adapter'
end
  

Затем запустите bundle .