Rails 3 Sandbox Console

2020-07-02 12:34发布

问题:

In Rails 2 you're able to run

script/console --sandbox

so you can play with production data and not accidentally break anything.

I can't seem to find the equivalent command for Rails 3. Does anyone know what it is?

回答1:

Easy, type in:

bundle exec rails c -s

and that is it.

$ bundle exec rails c --help
Usage: console [environment] [options]
    -s, --sandbox                    Rollback database modifications on exit.
        --debugger                   Enable ruby-debugging for the console.
        --irb                        DEPRECATED: Invoke `/your/choice/of/ruby script/rails console` instead

It is simple, but, sometimes, if you are not running rails executable using bundle exec, it may, or may not, result in an error. In order to avoid this, ALWAYS use bundle exec.

To quote bundler page (if not documentation):

In some cases, running executables without bundle exec may work, if the executable happens to be installed in your system and does not pull in any gems that conflict with your bundle.

However, this is unreliable and is the source of considerable pain. Even if it looks like it works, it may not work in the future or on another machine.