내 Users
은 모두 Character
과의 관계가 has_many
입니다. 이제 그들은 응용 프로그램을 사용할 수 있기 전에 먼저 주인을 선택하기 전까지 한 문자를 기본으로 선택해야하므로 문자를 members
컨트롤러 표시 방법으로 리디렉션하고 싶습니다.전체 컨트롤러에 대한 필터 할당 예외 전
그러나 내 접근 방식은 작동하는데, 예를 들어 누군가가 주인을 선택하기 전에 로그 아웃하려고 할 때 그 사람이 member_path
으로 리디렉션하는 문제가 있습니다. 이 규칙과 컨트롤러의 members
컨트롤러에 예외로 컨트롤러를 추가하려면 어떻게해야합니까? 에서
class ApplicationController < ActionController::Base
protect_from_forgery
before_filter :check_for_main
skip_before_filter :check_for_main, :only => [:members => :show, :users => :sign_out]
# Check if user has a main character selected
private
def check_for_main
# Check signed in user
if user_signed_in?
# Check associated characters if any are set as main
redirect_to member_path(current_user.id), :alert => "Please select your main character."
unless current_user.characters.any?(&:main)
end
end
end
end
내 문제가 있지만 내가 사용자의 컨트롤러를 필요가 없다는 것을 알고있다. –
': sign_out' 액션은 컨트롤러의 일부입니까? –
액세스 할 수없는 장치 컨트롤러의 일부입니다. –