Recibo un error con mis rutas cuando intento anular to_param en mi modelo de usuario para usar la dirección de correo electrónico como id. Parece que intenta hacer coincidir el objeto completo para el id cuando intenta hacer coincidir la ruta. ¿Alguien puede ayudarme a descubrir lo que me estoy perdiendo?Rails 3.0: error con las rutas al anular to_param en el modelo
Aquí está el error:
No route matches {:controller=>"users", :action=>"show", :id=>#<User id: 1, email: ....>}
Así es como he establecido el código.
modelos/user.rb:
attr_accessible :email
def to_param
email
end
controladores/users_controller.rb:
before_filter :get_user, :only=>[:show,:update,:edit,:destroy]
...
def get_user
@user = User.find_by_email params[:id]
end
config/routes.rb
resources :users
Y aquí está la salida de rutas de rake:
user GET /users(.:format) {:controller=>"users", :action=>"index"}
POST /users(.:format) {:controller=>"users", :action=>"create"}
new_user GET /users/new(.:format) {:controller=>"users", :action=>"new"}
edit_user GET /users/:id/edit(.:format) {:controller=>"users", :action=>"edit"}
user GET /users/:id(.:format) {:controller=>"users", :action=>"show"}
PUT /users/:id(.:format) {:controller=>"users", :action=>"update"}
DELETE /users/:id(.:format) {:controller=>"users", :action=>"destroy"}
muestran que enlace, lo que lleva a este error, por favor.Todo su código es correcto, entonces el error está en su enlace – fl00r
El problema está en mostrar, editar, actualizar y destruir rutas. Por lo tanto, intente navegar a la ruta en el navegador (/users/[email protected], o llame a link_to en la vista, como <% = link_to "Show", usuario%>, o <% = link_to "Edit" , edit_user_path (usuario)%> – Bee