【发布时间】:2013-09-26 07:12:47
【问题描述】:
我之前创建了一个User/Show Page 执行以下步骤:
路线:
# User Profile
get "users/show"
get 'user/:id' => 'users#show', as: :user
在我的 users_controller:
def show
@user = User.find_by_user_name(params[:id]) # For Name instead of ID
end
现在我创建了一个
Albums Scaffold,我想做同样的事情:
路线:
# User Albums
get "users/albums"
get 'user/:id/albums' => 'users#albums'
并添加到我的 users_controller:
def albums
@user = User.find_by_user_name(params[:id]) # For Name instead of ID
@albums = @user.albums
end
在 rake 路线上,我得到以下信息
users_show GET /users/show(.:format) users#show user GET /user/:id(.:format) users#show users_albums GET /users/albums(.:format) users#albums GET /user/:id/albums(.:format) users#albums
首先这是一个好习惯吗?,其次它不起作用:)
如果我尝试直接访问:
http://localhost:3000/user/username/albums
它有效。
【问题讨论】:
-
为什么有 4 条路由指向 2 个动作?你想在每个场景中完成什么?我认为这不是好的做法,因为我无法通过查看此内容来理解您要完成的工作。
-
我正在尝试让 url localhost:300/user/username/albums 显示该用户的相册
-
那
/users/albums做了什么?为什么会在那里? -
嗯,我正在执行与设置用户显示页面相同的步骤。我对rails很陌生,请原谅我。如果你有解决方案,你介意回答。
标签: ruby-on-rails controller routes ruby-on-rails-4