公共用户档案? Ruby on Rails + Devise

时间:2011-03-23 21:22:05

标签: ruby-on-rails devise user-profile

如何制作公共用户个人资料?我使用Devise并且只有/ user /。用户只能看到他的个人资料,我想制作/ user / user_id。

user_id - 公共用户个人资料。

3 个答案:

答案 0 :(得分:3)

要使用devise创建公开个人资料,请确保您设置的路线如

resources :users

并确保设置了控制器操作来处理show资源。如果没有,请创建一个控制器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 filter,并根据param[:user_id]检查current_user id。

答案 1 :(得分:1)

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

  match 'show/:id' => 'user#show'

答案 2 :(得分:0)

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

  • 在控制器中创建users_controller.rb

  • 在视图中创建/用户/典型视图,例如indexshow(当然在您的控制器中定义它们)

  • 在路线中添加resources :users

您只需将迁移添加到users表,例如

$ rails g migration add_birthday_to_users birthday:date

并在users /:id页面

上显示