2013-10-25 3 views
1

레일에서 루비를 처음 사용했습니다.사용자가 마지막으로 방문한 페이지를 레일에 저장하는 방법

나는 카테고리 모델이 있다고 말하면서 전형적인 문제가 있습니다. 예를 들어 사용자는 카테고리/1 페이지로 이동합니다 (여기의 카테고리는 카테고리 리소스이고 1은 ID 번호입니다).

이제 특정 카테고리 페이지를 저장해야합니다. 그래서 사용자가 다시 로그인 할 때 특정 카테고리 페이지로 사용자를 리디렉션 할 수 있습니다.

이 문제를 해결하는 데 도움을주십시오.

미리 감사드립니다.

답변

1

세션 전체에서 해당 카테고리 ID를 유지해야하므로 데이터베이스에 저장해야 할 것입니다. 범주 ID를 저장하려면 사용자에게 category_id 특성을 만듭니다. 그런 다음 사용자가 다음에 로그인하면 마지막으로 방문한 카테고리로 보낼 수 있습니다.

class CategoriesController < ApplicationController 
    def show 
    @category = Category.find(params[:id]) 
    current_user.category = @category 
    current_user.save 
    end 
end 

class HomeController < ApplicationController 
    def login 
    ... auth logic ... 
    if current_user.category_id.present? 
     redirect_to current_user.category 
    end 
    end 
end 

그리고 사용자 모델 :

class User < AR 
    belongs_to :category 
end 
다음

은 몇 가지 빠른 샘플 코드입니다
0

가장 간단한 방법은 다른 모델에 관계를 저장하는 User 모델에 필드를 추가하는 것입니다 (예 : category_id). 특정 카테고리를 볼 때이를 업데이트하십시오.

그러면 로그인시 정의 된 경우이 레코드로 리디렉션 할 수 있습니다.

관련 문제