1

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.

4

3 回答 3

3

要使用 公开个人资料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].

于 2011-06-19T23:28:08.597 回答
1

您应该在 config/routes.rb 文件上创建一个路由,如下所示。然后实现你的控制器方法和视图。

  match 'show/:id' => 'user#show'
于 2011-03-23T22:23:29.903 回答
0

我没有那么有经验,但我是这样做的:

  • 在控制器中创建一个 users_controller.rb

  • 例如,在视图中创建 /users/ 典型视图,index并且show(当然在您的控制器中定义它们)

  • 在路线中添加resources :users

您可以简单地将迁移添加到用户表中,例如

$ rails g migration add_birthday_to_users birthday:date

并在 users/:id 页面上显示

于 2011-03-25T23:20:07.833 回答