title: Why isn't this render format limiting requests?
body: <p>If I allow a controller method <code>#new</code> to render its corresponding view template implicitly/by default, when I request <code>/users/password/new</code>, I see the corresponding template, and when I request <code>/users/password/new.zip</code>, it 404s. This is what I want.</p>
  
  <p>However, because I need to pass a variable to the template, I'm calling <code>render</code> explicitly and passing <code>locals</code>, and <code>formats: :html</code> as well, in order to solve the problem I'm about to describe. So it looks something like:</p>
  
  <p><code>render :new, locals: { myvar: someval }, formats: :html</code> (basically that)</p>
  
  <p>In this case, the first path renders the template as expected, but requesting <code>/users/password/new.zip</code> renders the new template instead of returning a 404. In other words, it's matching on <code>new</code> and ignoring the extension <code>.zip</code>, which I do not want to match this route.</p>
  
  <p>You may notice that this is a Devise standard path, and the code has nothing else in routes or configuration (as far as I know) that should cause this behavior.</p>
  
  <p>I've tried a number of different variations of this, and done the usual searching, but have not been able to solve this problem.</p>
  
  <p>How can I call render such that I'm able to render the <code>new</code> template, pass it <code>locals</code> as explained, <em>and</em> restrict the response to only <code>:html</code>/default types?</p>
  
  <p>So:</p>
  
  <ul>
  <li><code>/users/password/new</code> should succeed, and</li>
  <li><code>/users/password/new.zip</code>, or any other type besides HTML, should 404</li>
  </ul>
  
  <p>As explained, the latter currently render's Devise's reset password screen (which lives at this path).</p>
  
  <p>Thanks.</p>