Rails console not working on server
I'm assuming that you updated to rails 4
from version 3 and your app can't find the executables in the bin
directory. Run this to see your rails version:
$ rails -v
If your rails
version is 4 or above, try running this:
$ rake rails:update:bin
Source: Rails 4 Release Notes
6.1 Notable changes
- Your app's executables now live in the
bin/
dir. Runrake rails:update:bin
to getbin/bundle
,bin/rails
, andbin/rake
.
I am using capistrano to deploy, including the capistrano/bundler gem. Since the ./bin
directory is version controlled in Rails 4, we need to prevent Capistrano from linking it on deployments by removing bin from set :linked_dirs
.
Now in order to prevent bundler from overwriting the version controlled binstubs, we can add the line set :bundle_binstubs, nil
which will prevent capistrano-bundler from setting the --binstubs option when running bundle install.
My config/deploy.rb file now has these lines:
# Default value for linked_dirs is []set :linked_dirs, fetch(:linked_dirs, []).push('log', 'tmp/pids', 'tmp/cache', 'tmp/sockets', 'vendor/bundle', 'public/system')set :bundle_binstubs, nil
Note the lack of the bin
directory in the :linked_dirs
line.
I have the same problem, and turns out when you deploy through cap shared/bin
is symlink to current/bin
.
Here's what works for me:
rm current/bin
mkdir current/bin
rake rails:update:bin
This should help, but it is somewhat a temporary solution, I'm trying to find out how to make cap not auto symlink-ing current/bin.