Skip to content

Instantly share code, notes, and snippets.

@Signum
Created April 11, 2013 18:12
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Signum/5365778 to your computer and use it in GitHub Desktop.
Save Signum/5365778 to your computer and use it in GitHub Desktop.
Weird routing problem…
$ rake routes
domains GET /domains domains#index
POST /domains domains#create
new_domain GET /domains/new domains#new {:domain=>/[0-z\.\-]+/}
edit_domain GET /domains/:domain/edit domains#edit {:domain=>/[0-z\.\-]+/}
domain /domains/:domain(.:format) domains#show
PUT /domains/:domain domains#update {:domain=>/[0-z\.\-]+/}
DELETE /domains/:domain domains#destroy {:domain=>/[0-z\.\-]+/}
mailusers GET /domains/:domain/mailusers mailusers#index {:domain=>/[0-z\.\-]+/, :email=>/[0-z\.\-_@]+/}
POST /domains/:domain/mailusers mailusers#create {:domain=>/[0-z\.\-]+/, :email=>/[0-z\.\-_@]+/}
new_mailuser GET /domains/:domain/mailusers/new mailusers#new {:domain=>/[0-z\.\-]+/, :email=>/[0-z\.\-_@]+/}
edit_mailuser GET /domains/:domain/mailusers/:email/edit mailusers#edit {:domain=>/[0-z\.\-]+/, :email=>/[0-z\.\-_@]+/}
mailuser GET /domains/:domain/mailusers/:email mailusers#show {:domain=>/[0-z\.\-]+/, :email=>/[0-z\.\-_@]+/}
PUT /domains/:domain/mailusers/:email mailusers#update {:domain=>/[0-z\.\-]+/, :email=>/[0-z\.\-_@]+/}
DELETE /domains/:domain/mailusers mailusers#destroy {:domain=>/[0-z\.\-]+/, :email=>/[0-z\.\-_@]+/}
root / :controller#:action
--------- routes.rb
Ispmailadmin::Application.routes.draw do
# I don't want numeric IDs. That's why I do all this punk with :domain instead of :id
re_domain = /[0-z\.\-]+/
re_email = /[0-z\.\-_@]+/
match 'domains' => 'domains#index', :via => :get, :as => 'domains', :format => false
match 'domains' => 'domains#create', :via => :post, :format => false
match 'domains/new' => 'domains#new', :via => :get, :as => 'new_domain', :format => false, :domain => re_domain
match 'domains/:domain/edit' => 'domains#edit', :via => :get, :as => 'edit_domain', :format => false, :domain => re_domain
#match 'domains/:domain' => 'domains#show', :via => :get, :as => 'domain', :format => false, :domain => re_domain
match 'domains/:domain', :to => 'domains#show', :as => 'domain'
match 'domains/:domain' => 'domains#update', :via => :put, :format => false, :domain => re_domain
match 'domains/:domain' => 'domains#destroy', :via => :delete, :format => false, :domain => re_domain
match 'domains/:domain/mailusers' => 'mailusers#index', :via => :get, :as => 'mailusers', :format => false, :domain => re_domain, :email => re_email
match 'domains/:domain/mailusers' => 'mailusers#create', :via => :post, :format => false, :domain => re_domain, :email => re_email
match 'domains/:domain/mailusers/new' => 'mailusers#new', :via => :get, :as => 'new_mailuser', :format => false, :domain => re_domain, :email => re_email
match 'domains/:domain/mailusers/:email/edit' => 'mailusers#edit', :via => :get, :as => 'edit_mailuser', :format => false, :domain => re_domain, :email => re_email
match 'domains/:domain/mailusers/:email' => 'mailusers#show', :via => :get, :as => 'mailuser', :format => false, :domain => re_domain, :email => re_email
match 'domains/:domain/mailusers/:email' => 'mailusers#update', :via => :put, :format => false, :domain => re_domain, :email => re_email
match 'domains/:domain/mailusers' => 'mailusers#destroy', :via => :delete, :format => false, :domain => re_domain, :email => re_email
root :to => redirect('/domains')
end
-------- View code:
<td><%= link_to 'Show', domain %></td>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment