我正在寻找有关为当前用户的个人资料页面创建路径的最佳方法的建议。目前我只有用户作为资源。您可以访问/ users /:user_id访问任何用户的个人资料页面。我也有成员路由,例如/ users /:user_id / followers。我希望能够将当前用户带到他们的个人资料页面的路线/个人资料和/个人资料/粉丝。因此,如果我的用户ID为5,我可以转到/ profile,它会将我带到与/ users / 5相同的页面。
注意:我也在使用设计
路由
resources :users, only: [:show, :update] do
member do
get :following, :followers
end
end
users_controller
def show
@user = User.find(params[:id])
end
def followers
@user = User.find(params[:id])
@title = "Followers"
@users = @user.followers.active
render 'show'
end
def following
@user = User.find(params[:id])
@title = "Following"
@users = @user.followed_users.active
render 'show'
end
有没有办法可以使用用户控制器和相同的操作
答案 0 :(得分:2)
在路线中添加
get 'profile', to: 'users#show'
在操作中使用current_user
来查找用户而不是User.find(params[:id]
。然后,您不需要在路径中添加Id
。
在show action
中,您可以添加以下内容以便同时使用这两种方式。
if params[:id]
user = User.find(params[:id])
else
user = current_user
end