2016-04-17 4 views
0

Быстрый вопрос: Я следовал этому руководству, где они построили систему аутентификации пользователей вместо использования devise.Уничтожьте пользователя - с пользовательской аутентификацией (рельсы)

Моя проблема заключается в том, что в учебнике отсутствует действие уничтожения, в котором устройство готово и делает это хорошо.

Моя создать действие является

User_controller.rb

def create 
    @user = User.create(user_params) 
    session[:user_id] = @user.id 
    if @user.valid? 
    flash[:notice] = "You've successfully Created Your Account! Welcome!" 
    redirect_to root_path 
    else 
    flash[:notice] = "Opps Something went bad, :/ Try again please" 
    render action: 'new' 
    end 
end 

Я действительно надеюсь, что это не общее событие nuub вопрос, хотя я один. Но может ли кто-нибудь предложить несколько советов по уничтожению? а также как это действие появится в маршрутах и ​​с помощью метода link_to. Я хочу создать страницу деактивации, которая дает отправку, и пользователь может отменить свою учетную запись. Любые крутые подсказки к странице деактивации сбоку будут высоко оценены.

ответ

0

Руководство по рельсам Hartl охватывает это довольно хорошо ИМО. Когда у вас есть действие уничтожения, определенное в вашем контроллере, вы можете создать ссылку для деактивации своей учетной записи, вызывающей действие уничтожения, и перенаправление на домашнюю страницу или страницу прощания. Если пользователи указаны в качестве ресурса на ваших маршрутах, вам не нужно изменять маршруты, поскольку DELETE является стандартной командой CRUD.

https://www.railstutorial.org/book/updating_and_deleting_users

, например:

user_controller

def destroy 
    User.find(params[:id]).destroy 
    flash[:success] = "User deleted" 
    redirect_to users_url 
end 

вид

<%= link_to "delete", user, method: :delete, 
            data: { confirm: "You sure?" } %> 
0

Для страницы дезактивировать, может быть, вы можете добавить булево столбец в таблице пользователей, скажем, is_active,
и другое действие контроллера для деактивации, скажем deactivate, который просто установит столбец is_active как false для этого пользователя.
см. Пример route.rb для маршрута.

образец @ncarroll корректен, для маршрутов, если у вас есть в вашем routes.rb:

Rails.application.routes.draw do 
    resources :users do 
    put :deactivate 
    end 
end 

Это будет автоматически создавать маршруты для RESTful действий, который включает в себя destroy.

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