Hi
I’m creating a mountable admin engine (like Active Admin but not as
advanced) using Inherited Resources. Let’s call it AdminFoo.
In my main app I mount it with mount AdminFoo::Engine, at: ‘/admin’ in
my
routes file.
Let’s say I have the following structure in my engine:
AdminFoo
app
- views
-
- admin_foo
-
-
- resource
-
-
-
-
- index.html.erb
-
-
-
-
- shared
-
-
-
-
- _nav_bar.html.erb
-
-
If I want to render _nav_bar in my index.html.erb file I need to
reference
it from the view root, like this: *render ‘admin_foo/shared/nav_bar’ *
Now I want to override the nav_bar partial from my main app like this:
MainApp
app
- views
-
- admin
-
-
- shared
-
-
-
-
- _nav_bar.html.erb
-
-
However, this doesn’t work since it looks for the file in *
‘admin_foo/shared/nav_bar’*
I don’t want to create an admin_foo folder in my main app since I
already
have the admin folder which the engine mounted under. This works for
controllers, for instance I have this structure for my custom admin
controllers and its views:
*
*
MainApp
app
- controllers
-
- admin
-
-
- Admin::BarController < AdminFoo::ResourceController
-
- views
-
- admin
-
-
- bar
-
-
-
-
- index.html.erb
-
-
It is weird to have both admin AND admin_foo folders in my main app.