在显示中找不到具有"id"=数字的用户



我有很多用户,每个用户都有案例。当我试图打开案例的显示页面时,它会出现以下错误:在中找不到"id"=4的用户http://localhost:3000/cases/4这是我的密码在路线

resources :cases

在型号的情况下

class Case < ActiveRecord::Base
belongs_to :users
end

用户模型

has_many :cases

如果控制器

class CasesController < ApplicationController
before_action :authenticate_user!,except: [:index,:show]
before_action :find_case ,only:[:show,:update,:edit,:destroy]
def new
@user =User.find(params[:id])
@case = @user.cases.build
end
def index
@user =User.find(params[:id])
@cases=@user.cases
end
def show
@user = User.find(params[:id])
end
def create
@user =User.find(params[:id])
@case = @user.cases.build(case_params)
if @case.save
redirect_to doctor_path(:id => @user.id)
end
end
def edit
@user =User.find(params[:id])
end
def update
if @case.update(case_params)
redirect_to root_path, alert: "case Information updated successfully"
else
flash.now[:error] = "Couldn't update!"
render :edit
end
end
def destroy
@case.destroy
redirect_to doctors_path, notice: "case deleted Successfully"
end 
private
def find_case
@case = Case.find(params[:id])
end
def case_params
params.require(:case).permit(:pt_name,:date_received,:due_date,:shade,:mould,:upper_lower,{step_ids: []})
end
end

如果显示.html.erb

<strong>Case Id: </strong> <%= @case.id %><br>
<strong>For doctor: </strong> <%= current_user.first_name.capitalize %><br>
<strong>Patient Name: </strong> <%= @case.pt_name.capitalize %><br>
<strong>Date Received: </strong><%= @case.date_received %><br>
<strong>Due Date: </strong><%= @case.due_date  %><br>
<strong>Shade: </strong><%= @case.shade %><br>
<strong>Mould: </strong><%= @case.mould %><br>
<strong>Upper or Lowe: </strong><%= @case.upper_lower %><br>
<%= link_to :controller => :cases, :action => :edit, :id => @user.id do %>
edit
<% end %>

您在CasesController&在CCD_ 3方法中使用CCD_。您还可以在show方法中找到使用相同params[:id]的用户。

如果您想要与case关联的user,您可以更改代码以在show方法&其他方法如下。

@user = @case.user

注意:-正如你在问题中所说,用户有案例,你的案例模型应该是

class Case < ActiveRecord::Base
belongs_to :user
end

最新更新