我正在使用rails4和ruby2。我有两个模型: MedicalCenter和病人。医疗中心有很多病人。我没有嵌套他们的路线。请帮助我找到一个特定的medical_center_id的所有病人,并显示在医疗中心的表演行动。
class MedicalCentersController < ApplicationController
before_action :set_medical_center, only: [:show, :edit, :update, :destroy]
before_action :require_signin!
def index
@medical_centers = MedicalCenter.all
end
def show
@patients=Patient.find(:all, :conditions => ["medical_center_id = ?", params[:medical_center_id]])
end
def new
@medical_center = MedicalCenter.new
end
def edit
end
def create
@medical_center = MedicalCenter.new(medical_center_params)
respond_to do |format|
if @medical_center.save
format.html { redirect_to @medical_center, notice: 'Medical center was successfully created.' }
format.json { render action: 'show', status: :created, location: @medical_center }
else
format.html { render action: 'new' }
format.json { render json: @medical_center.errors, status: :unprocessable_entity }
end
end
end
private
def set_medical_center
@medical_center = MedicalCenter.find(params[:id])
end
def medical_center_params
params.require(:medical_center).permit(:name, :address, :phone_no)
end
endshow.html.erb of MedicalCenter class
Associated patients:
<% @patients.each do |s| %>
<ul>
<li><%=link_to s.name, patient_path(s)%></li>
</ul>
<%end%>
routes.rb
resources :medical_centers
resources :patients现在,当我去看一家医疗中心的表演时,它显示出一片空白。
发布于 2014-05-24 20:38:24
试着像这样改变你的show method的MedicalCentersController
def show
@patients = Patient.find(:all, :conditions => ["medical_center_id = ?",@medical_center.id])
end更新
如果您想将这些代码放入您的MedicalCenter模型中,那么您必须这样做
#medical_center.rb
def some_method_name
@med = self.find(params[:id])
@patients = Patient.find(:all, :conditions => ["medical_center_id = ?",@med.id])
endhttps://stackoverflow.com/questions/23849371
复制相似问题