Estoy tratando de cambiar las rutas de los raíles desde/users/1 a/username. Actualmente configuré esto para que funcione para las acciones de mostrar y editar. El problema real es que cuando voy a actualizar el usuario mediante el uso de:Rieles ruta a nombre de usuario en lugar de id
<%= form_for @user do |f|%>
Nunca actualizaciones, ya que la acción de actualización se encamina a/usuarios /: id. ¿Hay alguna manera de enrutar esto para que funcione para/username? (que es la ruta que está renderizando en mis formularios como la acción). He estado rascándome la cabeza por este desde hace un tiempo.
EDIT:
El problema no es el enrutamiento a nombre de usuario, que trabaja correctamente. El problema es que el formulario se dirige a/username para la actualización, sin embargo, la ruta de actualización para los usuarios sigue siendo/users /: id en lugar de:/id.
He intentado actualizar mis rutas de esto, pero en vano:
match '/:id', :to => "users#show", :as => :user
match '/:id', :to => "users#update", :as => :user, :via => :put
match '/:id', :to => "users#destroy", :as => :user, :via => :delete
EDIT:
Doh! Esto ha solucionado el problema:
match '/:id', :to => "users#show", :as => :user, :via => :get
¿sería mejor para especificar 'param:: username' en el f rutas ile? Debido a que el parámetro ya no debería llamarse ': id', sino que debería llamarse': username' –