나는 devise plugin을 사용하며 current_user
헬퍼가 있습니다. 내 사용자는 응용 프로그램에서 많은 프로필을 가질 수 있으므로 사용자는 has_many :profiles
이며 항상 그 중 하나가 활성화됩니다.create current_something helper
어떻게 도우미를 만들 수 있습니까? current_profile
?
감사합니다 그것으로부터 상속 모든 컨트롤러와 뷰에 사용할 수 있도록합니다
나는 devise plugin을 사용하며 current_user
헬퍼가 있습니다. 내 사용자는 응용 프로그램에서 많은 프로필을 가질 수 있으므로 사용자는 has_many :profiles
이며 항상 그 중 하나가 활성화됩니다.create current_something helper
어떻게 도우미를 만들 수 있습니까? current_profile
?
감사합니다 그것으로부터 상속 모든 컨트롤러와 뷰에 사용할 수 있도록합니다
당신은 ApplicationController
에서 도우미를 만들 수 있습니다 :
class ApplicationController < ActionController::Base
protect_from_forgery
helper_method :current_profile
private
def current_profile
# get current_profile based on current_user here
end
end
지금 당신이 어떤 뷰/컨트롤러에
current_profile
를 사용할 수 있습니다.
은 실제로 어떤 프로필이 활성 상태인지 파악하는 데 불과합니다 (사용자가 주어진 세션에서 활성 프로필을 1 개만 가질 수 있다고 가정 할 때 더 쉽게 만들 수 있습니다). 따라서 현재 세션 정보를 사용하여 현재 사용자를 찾은 다음 활성 프로필을 찾고 빙고를 완료하면됩니다.
여기까지는인데, 이것은 실제로 범위의 문제입니다. 도우미 메서드를 모든보기에서 사용할 수있게하려면 응용 프로그램 컨트롤러에서 도우미 메서드를 선언하기 만하면됩니다.
User
클래스에서 나는 그냥 쓸 수 컨트롤러/헬퍼 내부 방법을 다음
class User
has_many :profiles
def current_profile
@current_profile ||= profiles.where('current = ?', true).first
end
end
과를 추가 :이 도움이
current_user.current_profile
희망을.