How to make public user profiles? I use Devise and only have /user/. User can see only his profile, I want to make /user/user_id.
user_id - public user profile.
How to make public user profiles? I use Devise and only have /user/. User can see only his profile, I want to make /user/user_id.
user_id - public user profile.
要使用 公开个人资料devise
,请确保您设置了类似的路线
resources :users
并确保您设置了一个控制器操作来处理显示资源。如果没有,创建一个控制器users_controller.rb
并给它一个类定义,以及一个 show 方法。
class UsersController < ApplicationController
def index
@users = User.all
respond_to do |format|
format.html # index.html.erb
format.xml { render :xml => @users }
end
end
def show
@user = User.find(params[:id])
respond_to do |format|
format.html # show.html.erb
format.xml { render :xml => @user }
end
end
end
接下来浏览/users/1
或/users/2
(如果您设置了两个用户),您应该会看到两个配置文件。要将它们设置为私有,您应该在控制器操作中执行一个 before 过滤器,检查 current_user id 与param[:user_id]
.
您应该在 config/routes.rb 文件上创建一个路由,如下所示。然后实现你的控制器方法和视图。
match 'show/:id' => 'user#show'
我没有那么有经验,但我是这样做的:
在控制器中创建一个 users_controller.rb
例如,在视图中创建 /users/ 典型视图,index
并且show
(当然在您的控制器中定义它们)
在路线中添加resources :users
您可以简单地将迁移添加到用户表中,例如
$ rails g migration add_birthday_to_users birthday:date
并在 users/:id 页面上显示