Rails 5: кнопка удаления link_to не работает должным образом - PullRequest
0 голосов
/ 06 марта 2020

Я пытаюсь создать удаление link_to в Rails 5, но по какой-то причине. Это не сработало.

По сути, я загрузил пользовательскую таблицу через конфигурацию devise или настройку.

Это будет работать для каждой учетной записи.

На этот раз я пытаюсь создать страницу или страницы, которые будут отображаться только специально для пользователей с ролью администратора.

Итак Я создал еще один контроллер для списка контроллеров, а затем в своем routes.rb я помещаю это:

 get 'dashboard/users-list', to: 'users#index' 

Затем внутри моего app/views/users/index.html.erb у меня есть следующее:

  <section class="form-contact">
    <div class="container">
      <div class="row">
        <div class="col-lg-9 mx-auto center-box">
          <div class="card">
            <div class="card-header">
              <h2 class="display-5 main-text-blue text-center font-weight-bold">Users List</h2>
            </div>
            <div class="card-body">


<table class="table table-striped">
  <thead>
    <tr>
      <th scope="col">Id</th>
      <th scope="col">Name</th>
      <th scope="col">Email</th>
       <th scope="col">Action</th>
    </tr>
  </thead>
  <tbody>
  <% @users.each do |user| %>

    <tr>
      <th scope="row"><%= user.id %></th>
      <td><%= user.name %></td>
      <td><%= user.email %></td>
      <td>
        <button class="btn btn-primary btn-user">Edit</button>
        <%= link_to 'Delete', user, method: :delete, data: { confirm: "Are you sure you want to delete user?"}, class: "btn btn-primary btn-user" %>


      </td>
    </tr>

    <% end %>
  </tbody>
</table>

            </div>

          </div>
        </div>
      </div>
    </div>
  </section>

Обратите внимание на удаляемую часть:

<%= link_to 'Delete', user, method: :delete, data: { confirm: "Are you sure you want to delete user?"}, class: "btn btn-primary btn-user" %>

Когда я перезагружаю это, выдается ошибка 'users_path not working`.

Вот мой users контроллер, кстати:

class UsersController < ApplicationController
   before_action :set_contact, only: [:edit, :update, :destroy]

   def index
    @users = User.all
   end 

   def edit
   end

   def update
   end

   def destroy
     @user.destroy
   end 

   private

   def set_user
    @user = User.find(params[:id])
  end

   def user_params
    params.require(:user).permit(:name, :email, :user_avatar, :password)
  end
end

Несмотря на то, что я успешно выполнил перечисление всех пользователей, кнопка удаления даже не будет работать, поэтому я могу удалить конкретного пользователя внутри. Есть идеи, что мне здесь не хватает?

1 Ответ

1 голос
/ 06 марта 2020

Есть ли в вашем контроллере опечатка или вы допустили ошибку копирования / вставки?

Изменение

before_action :set_contact, only: [:edit, :update, :destroy]

на

before_action :set_user, only: [:edit, :update, :destroy]

это может работать .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...