我有很多用户,每个用户都有案例。当我试图打开案例的显示页面时,它会出现以下错误:在中找不到"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