0

Возможно, я ищу неправильные ключевые слова, но я не могу найти способ ограничить пользователей, которым разрешено создавать учетную запись на моем сайте rails (или, возможно, Я использую придуманные призраки неправильно). Я полагаю, там должна быть методом, который я называю в перед фильтром или щелкнуть выключатель на инициализатор/devise.rbDevise Invitable - Ограничение доступа только к приглашенным пользователям

я пытался в моем users_controller.rb и не вез с использованием Ruby-Doc в reference

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 изменения registration_path(resource_name) к user_registration_path(resource) (Если использованию общих видов для нескольких моделей, вы можете использовать send("#{resource_name}_registration_path", resource))

Примечания:. Если вы используете рельсы 4.0+ вы должны использовать патч вместо положенных обновлений вы должны изменить метод в т он form_tag, проживающий в app/views/devise/registrations/edit.html.erb и файл routes.rb.

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

Смежные вопросы