Rails 3 Sandbox Console

2020-07-02 12:19发布

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条回答
家丑人穷心不美
2楼-- · 2020-07-02 12:34

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.

查看更多
登录 后发表回答