0

잘못된 키워드를 검색하고 있지만 내 레일 사이트에서 계정을 만들도록 허용 된 사용자를 제한하는 방법을 찾을 수 없습니다 (또는 어쩌면) 나는 devise-invitable wrong를 사용하고 있습니다.) 나는 거기에 내가 필터 이전에 전화하는 방법이거나 내 users_controller.rb에 노력하고 referenceInvise Invoice - 초대 된 사용자 만 액세스 제한

로 루비 문서를 사용하여 운이 없었다

이니셜/devise.rb의 스위치를 플립해야, 가정

before_filter: invited? 

/devise.rb 및 readme 이니셜 라이저를 읽었으므로 운이 없었습니다.

답변

1

나는 명백한 것을 생각하지 않았다. 숙련 된 사용자가 아닌 경로를 통해 사용자를 제한하십시오.

가 참조 Solution #2을 사용

당신이 가입 할 수 있도록 싶지 않아 가정 수 있습니다하지만 당신은 등록 된 사용자에 대한 암호를 변경할 수 있도록하려면 (아래 참조). 그냥 routes.rb에서이 코드를 붙여 넣습니다

devise_for :users, :skip => [:registrations]           
    as :user do 
     get 'users/edit' => 'devise/registrations#edit', :as => 'edit_user_registration'  
     put 'users/:id' => 'devise/registrations#update', :as => 'user_registration'    
    end 

을 그리고 당신은 당신의보기에서 이러한 링크를 만들 수 있습니다

= link_to "Change your password", edit_user_registration_path 

주의 사항 : 당신은 app/views/devise/registrations/edit.html.erb 변화 즉, 기본값은 이에 따라 뷰를 고안 업데이트해야합니다 user_registration_path(resource)-registration_path(resource_name) (여러 모델의 공유 뷰를 사용하는 경우, 당신은 send("#{resource_name}_registration_path", resource))

공지 사항을 사용할 수 있습니다. 당신이 대신 업데이트를 넣어의 패치를 사용한다 4.0 레일을 사용하는 경우 당신은 t의 방법을 변경해야합니다 그는 app/views/devise/registrations/edit.html.erbroutes.rb 파일에있는 form_tag입니다.

3

이 목적을 위해 맞춤 필터를 만들어야한다고 생각합니다.

before_action :authenticate_user! 

before_filter :restrict_only_invited_users 

def restrict_only_invited_users 
    redirect_to :root if current_user.invitation_accepted_at.blank? 
end 
+0

고마워요! 나는 장소에서 또는 경로 결정으로 고려할 수 있습니다. – AGirlThatCodes

+0

다시 한번 고마워, 나는 고안 한 제안 된 옵션으로 끝을 맺었다. – AGirlThatCodes