2011-03-23 70 views
1

如何製作公共用戶配置文件?我使用Devise,只有/ user /。用戶只能看到他的個人資料,我想讓/ user/user_id。公共用戶配置文件? Ruby on Rails + Devise

user_id - 公共用戶配置文件。

+0

是不是隻是編寫一個定義'@ user'爲'@user = User.find(params [:id])'的控制器的問題,假設'@ user'是您在配置文件視圖中使用的? – 2011-03-23 21:25:50

+0

我做博客aka twitter(用於體驗,我學習RoR)。我是用戶1,我想看到用戶2的公開個人資料(照片,地點,生物,最後的消息)。 – Pyrchev 2011-03-23 21:36:59

回答

1

您應該在config/routes.rb文件中創建一個路由,如下所示。然後實現你的控制器方法和視圖。

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

我沒那麼有經驗,但我沒有這樣說:

  • 在控制器上創建一個users_controller.rb

  • 在創建視圖/用戶/典型的看法,供例如indexshow(當然在你的控制器定義它們)

  • 在路由添加resources :users

您可以簡單地添加遷移到用戶表,像

$ rails g migration add_birthday_to_users birthday:date 

,並出示此對用戶/:ID頁面

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(如果有兩個用戶設置),你應該看到兩個配置文件。要將它們設置爲私有,您應該在控制器操作過濾器之前執行一次,然後根據param[:user_id]檢查current_user標識。