Я только начинаю с Rails 3, и я не совсем понимаю, как перейти к переименованию маршрутов.
Что я хочу:
Для переименования пути к паре users#show
контроллер / действие. Таким образом, вместо URL-адреса www.example.com/users/show/1
это будет просто www.example.com/1/home
В будущем я также хотел бы иметь возможность добавлять дополнительные пути в конец, такие как:
www.example.com/1/home/profile/
Как настроены мои пользовательские ресурсы:
resources :users, :except => [:destroy] do
resources :favorites, :only => [:show, :update]
resources :profiles, :only => [:show, :update]
end
Что я пробовал:
match :home, :to => 'users#show'
Что случилось:
ActiveRecord::RecordNotFound in UsersController#show
Couldn't find User without an ID
Что находится в файле development.log:
Started GET "/home" for 127.0.0.1 at 2011-03-10 13:36:15 -0500
Processing by UsersController#show as HTML
[1m[35mUser Load (1.6ms)[0m SELECT "users".* FROM "users" WHERE ("users"."id" = 101) LIMIT 1
Completed in 192ms
ActiveRecord::RecordNotFound (Couldn't find User without an ID):
app/controllers/users_controller.rb:19:in `show'
Что находится в пользовательском контроллере:
def show
@user = User.find(params[:id])
respond_to do |format|
format.html # show.html.haml
end
end
Итак, очевидно, он хранит идентификатор пользователя, как показано в журнале разработки как 101
, но по какой-то причине я все еще получаю эту ошибку?
Любая помощь, которую вы можете оказать, очень ценится!