title: How to write routing when resource model name does not match path or controller
body: <p>I've got a model called <code>ImplicitTest</code>. It's called this as having a Ruby object called <code>Test</code> just breaks a lot of things in Rails.</p>
  
  <p>However, I still want to expose it as a RESTful resource as <code>test</code> (e.g. <code>/tests</code>, <code>/test/1/edit</code> and so forth). Furthermore, it would be great to keep the controller as <code>TestsController</code>, although that's less important.</p>
  
  <p>I was doing this by having simple <code>resources :tests</code> line in my routes.rb file, but this fails for the RESTful forms (e.g. <code>&lt;%= form_for @test ... &gt;</code> - this picks up that the @test object is of type ImplciitTest, and tries to lookup <code>implicit_test_path</code> which does not exist.</p>
  
  <p>I tried adding form_for options, but came to the conclusion that to have the form work for both <code>new</code> and <code>edit</code> actions, there was no one single, unified way of asking form_for() to use a different prefix for the path name lookup.</p>
  
  <p>So I've been trying to approach the problem from the routing side. Is there a line I can add to the routes file that will allow me to:</p>
  
  <ol>
  <li>Have a model called ImplicitTest</li>
  <li>Have the path as /test</li>
  <li>Use the &lt;%= form_for @test ... %> tag still</li>
  <li>Keep the controller as TestsController (optional)</li>
  </ol>
  
  <p>I know I am departing the Golden Path to do this, but Rails isn't letting me use Test as a model name, but this is the name users will expect to see in the URL for this resource, so I'm hoping there is are simple routing option(s) that enable this.</p>