aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--railties/lib/rails/commands.rb5
1 files changed, 5 insertions, 0 deletions
diff --git a/railties/lib/rails/commands.rb b/railties/lib/rails/commands.rb
index acabdcac93..60b9a55d80 100644
--- a/railties/lib/rails/commands.rb
+++ b/railties/lib/rails/commands.rb
@@ -33,8 +33,13 @@ when 'console'
Rails::Console.start(Rails.application)
when 'server'
+ # try to guess application's path if there is no config.ru file in current dir
+ # it allows to run script/rails server from other directories
+ Dir.chdir(File.expand_path('../../', APP_PATH)) unless File.exists?(File.expand_path("config.ru"))
+
require 'rails/commands/server'
Rails::Server.new.tap { |server|
+ # we need to require application after the server sets environment
require APP_PATH
Dir.chdir(Rails.application.root)
server.start