为什么我的编辑工作者页面显示不同的工作者详细信息



我目前正在做一个辅助编辑页面。通常,当我们点击一个工人,然后点击编辑页面时,在编辑表单中会显示这个工人的信息,比如姓名,但现在我的编辑页面显示不同的工人信息(我想编辑工人a,但我的编辑表单显示工人B的详细信息(

我的删除功能也无法工作。

工作控制器

def show
@worker = Worker.find(params[:id])
end
def edit
@worker = Worker.find(params[:id])
@worker.company_id = params[:company_id]
@role = Role.all
end
def update
@worker = Worker.find(params[:id])
@company_id = Company.find(params[:worker][:company_id])
@role_id = Role.all
if @worker.update(worker_params)
@worker_role = Role.find(params[:worker][:role_id]).worker_roles.update(worker: @worker)
flash[:success] = "Profile updated"
redirect_to @worker
else
render 'edit'
end
end
#DELETE
def destroy
@worker = Worker.find(params[:id])
@worker.destroy
flash[:success] = "Worker deleted"
redirect_to worker_url
end

edit.html.erb

<% provide(:title, "Edit worker") %>
<h1>Update your profile</h1>
<div class="row">
<div class="col-md-6 col-md-offset-3">
<%= form_with(model: @worker, local: true) do |f| %>
<%= render 'shared/error_messages', object: f.object %>
<%= f.label :name %>
<%= f.text_field :name, class: 'form-control' %>
<%= f.label :email %>
<%= f.email_field :email, class: 'form-control' %>
<%= f.label :phone_number %>
<%= f.number_field :phone_number, class: 'form-control' %>
<%= f.label :address %>
<%= f.text_field :address, class: 'form-control' %>
<%= f.label :password %>
<%= f.password_field :password, class: 'form-control' %>
<%= f.label :role_id %>
<%= f.select(:role_id, Role.all.collect { |l| [ l.name, l.id] }, {class: "form-select"}) %>
<%= f.hidden_field :company_id , value: 2%>
<%= f.submit "Save changes", class: "btn btn-primary" %>
<% end %>
</div>
</div>

show.html.erb

<% provide(:title, @worker.name)%>
<h2>Worker Info</h2>
<%= render @worker %>
<div class="row">
<aside class="col-md-4">
<section class="stats">
<%= render 'shared/stats' %>
</section>
<div>
<button class="btn btn-secondary"><%= link_to "Back to workers", workers_path %></button>
<button class="btn btn-secondary"><%= link_to "Edit", edit_worker_path(current_worker) %></button>
<button class="btn btn-secondary"><%= link_to "Delete", @worker, :confirm => "Are you sure?" ,:method => :delete%></button>
</div>
</aside>
</div>

更新

如果我点击我自己的管理员员工信息页面,然后点击编辑可以显示编辑页面和我的员工信息,但如果我点击其他员工信息和编辑,我将转到登录页面。这是我需要做的验证吗?

单击编辑按钮后工人信息页面

对于删除按钮仍然无法工作,当我点击删除按钮时,我在控制台上看到它似乎没有删除方法,它给出了get方法。这就是它不能工作的原因吗?

当我点击删除按钮显示在控制台

  1. 看起来您使用了错误的辅助ID链接到编辑页面。您使用了一些current_worker变量,而它可能应该是@worker

对于show.html.erb:中的编辑按钮,请尝试此操作

<button class="btn btn-secondary"><%= link_to('Edit', edit_worker_path(@worker)) %></button>
  1. 您的删除操作不起作用,因为您根本没有提供路径

对于show.html.erb:中的删除按钮,请尝试此操作

<button class="btn btn-secondary"><%= link_to('Delete', worker_path(@worker), method: :delete, confirm: 'Are you sure?') %></button>

最新更新