2011-03-23 6 views
1

공개 사용자 프로필을 만드는 방법은 무엇입니까? 나는 Devise를 사용하고/user/만 가진다. 사용자는 자신의 프로필 만 볼 수 있으며/user/user_id를 만들고 싶습니다.공개 사용자 프로필? Ruby on Rails + Devise

user_id - 공용 사용자 프로필.

+0

'@user'를'@user = User.find (params [: id])'로 정의하는 컨트롤러를 작성하는 것만 큼은 아닙니다.'@ user'는 프로파일보기에서 사용하는 것으로 가정합니다 ? –

+0

나는 블로그를 일명 트위터로 만든다 (경험상, 나는 RoR을 배운다). 저는 사용자 1이고 사용자 2의 공개 프로필 (사진, 위치, 약력, 마지막 메시지)을보고 싶습니다. – Pyrchev

답변

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 

과 같은 경로를 설정하고 컨트롤러 동작을 최대로 설정했는지 확인하십시오. show 리소스를 처리하십시오. 그렇지 않다면 컨트롤러 users_controller.rb을 생성하고 show 메소드와 함께 클래스 정의를 지정하십시오. /users/1 또는 /users/2

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 

다음 찾아 당신이 두 프로필을 볼 수 (두 사용자가 설정 한 경우). 이들을 비공개로 설정하려면 컨트롤러 작업에서 before_user id를 param[:user_id]과 대조하여 before 필터를 수행해야합니다.