I ran into a bit of a problem today after implementing a search form that appeared on every page. When the login page was loaded I received the following error:
The weird thing about this is that the route my search form uses does not mention devise in any way:
<%= form_tag :controller => 'products', :action => 'search', :method => :get do %>
As you have probably already guessed, I’m using devise to handle my authentication. Unfortunately this seems to be overriding some of my routes whenever it co-exists with another form. Luckily there exists a very simple, although hard to find solution – simply add a forward slash before the controller definition:
<%= form_tag :controller => '/products', :action => 'search', :method => :get do %>
Here’s a quick link to the StackOverflow post which gave the answer, hopefully a few more links to it will make it a little easier to find for anyone else out there doing a search!