Note that there are some explanatory texts on larger screens.

plurals
  1. PORails Engines: Namespaced Polymorphic URLs
    primarykey
    data
    text
    <p>I have a Rails engine, <code>MyEngine</code>, that doesn't have an isolated namespace. I'm trying to use the polymorphic helpers to generate links to resources, as per the <a href="http://apidock.com/rails/ActionDispatch/Routing/PolymorphicRoutes" rel="nofollow">docs</a>.</p> <p>An engine route:</p> <pre><code># config/routes.rb ... namespace :admin do resources :my_resource end ... </code></pre> <p>Example output of <code>rake app:routes</code> (remember, this is an Engine):</p> <pre><code> admin_my_resources GET /admin/my_resources(.:format) my_engine/admin/my_resources#index POST /admin/my_resources(.:format) my_engine/admin/my_resources#create new_admin_my_resource GET /admin/my_resources/new(.:format) my_engine/admin/my_resources#new edit_admin_my_resource GET /admin/my_resources/:id/edit(.:format) my_engine/admin/my_resources#edit admin_my_resource PUT /admin/my_resources/:id(.:format) my_engine/admin/my_resources#update DELETE /admin/my_resources/:id(.:format) my_engine/admin/my_resources#destroy </code></pre> <p>If <code>my_resource</code> is an instance of a <code>MyResource</code> model with ID <code>12345</code>, I'd expect:</p> <pre><code>polymorphic_url([my_engine, :admin, my_resource]) </code></pre> <p>to render:</p> <pre><code>/my_engine/admin/my_resource/12345 </code></pre> <p>but I was wrong. Instead, I get an exception:</p> <pre><code>undefined method `admin_my_engine_my_resource_path'... </code></pre> <p>So, <code>polymorphic_url</code> is trying to use <code>admin_my_engine_my_resource_path</code> where it really should be using something more like <code>my_engine.admin_my_resource_path(my_resource)</code></p> <p>Rails seems to be adding <code>:admin</code> the wrong way around... or am I doing it wrong?</p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload