2016-04-28 4 views
-3

пытались получить маршрут для страницы DEViSE паролей на приложение рельсы, используяКак получить маршруты для создания паролей?

devise_for :users, path_names: { 
    password: 'secret' 
} 

Но не вернуть его, какие-либо идеи?

+1

Можете ли вы уточнить, что такое страница паролей? Я не уверен, что понимаю, что вы просите. Классические URL-адреса разработки будут в формате '[action] _user_session_url' – Mitch

+1

Запустите' rake routes' в командной строке; что может привести вас в правильном направлении. – GoGoCarl

+0

Im пытается генерировать маршруты для devise/paswords/new devise/passwords/edit. Когда я рейк маршрутов, которые они не показывают –

ответ

0
rake routes 

будет управлять всеми маршрутами, доступными при разработке. Если вы хотите получить доступ к настройкам пароля (IE изменить пароль, подтвердить пароль, ввести пароль и т. Д.) Перейти к разработке, ресурсам, редактировать и искать form_for. Фактически вы можете использовать эти ресурсы и добавлять свои собственные к нескольким представлениям. Цитирование непосредственно из утилит github на этом ..

По умолчанию Devise позволяет пользователям изменять свой пароль с помощью модуля :registerable. Но иногда разработчики хотят создавать другие действия, которые позволяют пользователю изменять свою информацию, не требуя пароля. Лучшим вариантом в этом случае является создание собственного контроллера, принадлежащего вашему приложению, и предоставление действий по редактированию и обновлению, как и для любого другого ресурса в вашем приложении.

Имейте в виду, что ограничивайтесь параметрами, которые вы можете изменить. В частности, вы, вероятно, хотите разрешить поля данных только пользователей и избежать электронной почты, пароль и такую ​​информацию, которая будет изменена:

params[:user].permit(:first_name, :last_name, :address) 

Альтернативным решением было бы просто переопределить «обновление ресурса» метод в контроллере регистраций следующим образом:

class RegistrationsController < Devise::RegistrationsController 

    protected 

    def update_resource(resource, params) 
    resource.update_without_password(params) 
    end 
end 

при использовании этого решения вы должны сообщить разработать использовать контроллер в routes.rb:

devise_for :users, controllers: {registrations: 'registrations'} 

Наконец, если у вас есть GE nerated views using devise, удалите соответствующий вход формы для «current_password» в app/views/devise/registrations/edit.html.erb.