How to run a Rails engine with Pow

Reading Time: 2 minutes

If you are a beginner and you ever had the need to run a Rails engine separately from your dummy app, you might have tried this:

bundle exec rails s

But if you did like that you will see this error:

Error: Command not recognized
Usage: rails COMMAND [ARGS]

The common Rails commands available for engines are:
generate    Generate new code (short-cut alias: "g")
destroy     Undo code generated with    "generate" (short-cut alias: "d")

All commands can be run with -h for more information.

If you want to run any commands that need to be run in  context of the application, like `rails server` or `rails   console`, you should do it from application's directory (typically test/dummy).

This would be expected, because it is not a full app, it doesn't contain all the configuration files to run from the root route, to fix that you need to run the server inside the following directory:

APP_PATH/test/dummy

Once you understand this, we'll try to run this engine with Pow. If you don't know what Pow is, you can visit the project's homepage. You could also take a look at this blog post by a fellow Colleage.

So, as I was trying to explain, you need to create a symlink for your app doing this:

ln -s /path/to/myapp

Now if you go to your browser and go to this address:

http://myapp.dev/

You will be able to see your engine app

Rails engine app

Troubleshooting

If you're using RVM, and you did all the steps but you're seeing an error like this:

LoadError: no such file to load -- bundler/setup

Then that means that you are experiencing an issue related to the new RVM version. The only thing you need to do is run this line inside APP_PATH/test/dummy/

 rvm env -- @[gemset] > .powenv

It will solve the problem, now you just need to restart POW and it will work.

Thanks for reading!

0 Shares:
You May Also Like