Я настраиваю систему управления арендодателем и пытаюсь управлять другими пользователями.В настоящее время у меня есть admin как логический атрибут в моей модели пользователей, поэтому я хотел бы отредактировать других пользователей и сделать их администраторами через форму редактирования.
Я пытаюсь сделать это с помощью влияния из этого поста Редактируйте другого пользователя как администратора в devise, ruby on rails
Так вот мой код:
Routes.rb
devise_for :users, :path_prefix => 'my'
resources :users
views \ users \ edit
<h2>Edit <%= resource_name.to_s.humanize %></h2>
<%= form_for(@user) do |f| %>
<%= f.error_notification %>
<div class="form-inputs">
<%= f.input :email, required: true, autofocus: true %>
<% if devise_mapping.confirmable? && resource.pending_reconfirmation? %>
<p>Currently waiting confirmation for: <%= resource.unconfirmed_email %>
</p>
<% end %>
<%= f.input :password,
hint: "leave it blank if you don't want to change it",
required: false,
input_html: { autocomplete: "new-password" } %>
<%= f.input :password_confirmation,
required: false,
input_html: { autocomplete: "new-password" } %>
<%= f.input :admin,
required: false %>
<%= f.input :current_password,
hint: "we need your current password to confirm your changes",
required: true,
input_html: { autocomplete: "current-password" } %>
</div>
<div class="form-actions">
<%= f.button :submit, "Update" %>
</div>
<% end %>
<h3>Cancel my account</h3>
<p>Unhappy? <%= link_to "Cancel my account",
registration_path(resource_name), data: { confirm: "Are you sure?" },
method: :delete %></p>
контроллеры \ пользователи
class UsersController < ApplicationController
def edit
@user = User.find(params[:id])
end
def update
@user = User.find(params[:id])
if @user.update(user_params)
redirect_to adminpanel_path
else
render 'edit'
end
end
end
Выпуск
если я зайду на http://localhost:3000/users/2/edit для редактирования пользователя, я получуследующая ошибка undefined local variable or method resource_name for #<#<Class:0x8b9df40>:0x8ba7360>