#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
.