I've got a RefineryCMS 2.1.2 app in which I've made an engine called properties. When I do a rake routes I get the following routes available
email_properties_property POST /properties/:id/email(.:format) refinery/properties/properties#email
properties_properties GET /properties(.:format) refinery/properties/properties#index
properties_property GET /properties/:id(.:format) refinery/properties/properties#show
update_positions_properties_admin_properties POST /refinery/properties/update_positions(.:format) refinery/properties/admin/properties#update_positions
properties_admin_properties GET /refinery/properties(.:format) refinery/properties/admin/properties#index
POST /refinery/properties(.:format) refinery/properties/admin/properties#create
new_properties_admin_property GET /refinery/properties/new(.:format) refinery/properties/admin/properties#new
edit_properties_admin_property GET /refinery/properties/:id/edit(.:format) refinery/properties/admin/properties#edit
properties_admin_property PUT /refinery/properties/:id(.:format) refinery/properties/admin/properties#update
DELETE /refinery/properties/:id(.:format) refinery/properties/admin/properties#destroy
properties_property_images GET /properties/property_images(.:format) refinery/properties/property_images#index
properties_property_image GET /properties/property_images/:id(.:format) refinery/properties/property_images#show
update_positions_properties_admin_property_images POST /refinery/properties/property_images/update_positions(.:format) refinery/properties/admin/property_images#update_positions
properties_admin_property_images GET /refinery/properties/property_images(.:format) refinery/properties/admin/property_images#index
POST /refinery/properties/property_images(.:format) refinery/properties/admin/property_images#create
new_properties_admin_property_image GET /refinery/properties/property_images/new(.:format) refinery/properties/admin/property_images#new
edit_properties_admin_property_image GET /refinery/properties/property_images/:id/edit(.:format) refinery/properties/admin/property_images#edit
properties_admin_property_image PUT /refinery/properties/property_images/:id(.:format) refinery/properties/admin/property_images#update
DELETE /refinery/properties/property_images/:id(.:format)
If I try to use something like this in my controller though it fails
@property = Property.find(params[:id])
redirect_to properties_property_path(@property)
It is getting the property correctly it's just not finding the route. Here is the error
undefined method `properties_property_path' for #<Refinery::Properties::PropertiesController:0x007fcf298a3b58>
Because of Rails' engine isolation, you will have to use the following:
@property = Property.find(params[:id])
redirect_to refinery.properties_property_path(@property)
This ensures that you're accessing the route from under Refinery's routing helpers (which is where it lives), and not your Rails application's routes.