我为我的一个资源添加了一条新路线:
resources :patients do
get 'warte'
end
这会产生:
patient_warte_path GET /patients/:patient_id/warte(.:format) patients#warte
patients_path GET /patients(.:format) patients#index
new_patient_path GET /patients/new(.:format) patients#new
edit_patient_path GET /patients/:id/edit(.:format) patients#edit
patient_path GET /patients/:id(.:format) patients#show
.....
我不知道的是为什么新路线会产生params[:patient_id
!
我的意思是在我的控制器中我有:
before_action :set_patient, only: [:show, :edit, :update, :destroy, :warte]
def set_patient
@patient = Patient.find(params[:id])
session[:patient] = @patient.id
end
但是现在我得到了错误:当我调用warte
动作时! Thanks1
Couldn't find Patient without an ID
答案 0 :(得分:1)
您缺少配置以使其使用id
。您需要定义它是:member
还是:collection
操作:
resources :patients do
get 'warte', on: :member
end