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
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!