Ruby on rails ActiveRecord::RecordNotFound(找不到id为的EmployeeResignation)=
当我一次又一次点击“打印”按钮时,它会通过一个活动记录错误被删除Ruby on rails ActiveRecord::RecordNotFound(找不到id为的EmployeeResignation)=,ruby-on-rails,Ruby On Rails,当我一次又一次点击“打印”按钮时,它会通过一个活动记录错误被删除 ActiveRecord::RecordNotFound (Couldn't find EmployeeResignation with 'id'=): app/controllers/exit_interviews_controller.rb:67:in `print_exit_interview' ActiveRecord::RecordNotFound: Couldn't find EmployeeResignat
ActiveRecord::RecordNotFound (Couldn't find EmployeeResignation with 'id'=): app/controllers/exit_interviews_controller.rb:67:in `print_exit_interview'
ActiveRecord::RecordNotFound: Couldn't find EmployeeResignation with 'id'=
我的控制器代码-
def print_exit_interview
@employee = params[:exit_interview] ? params[:exit_interview][:employee_id] : params[:employee_id]
@employee_resignation = EmployeeResignation.find(params[:id])
@exit_interviews = ExitInterview.where(employee_id: @employee_resignation.employee_id)
respond_to do |format|
format.html
format.pdf do
render :pdf => 'print_exit_interview',
layout: '/layouts/pdf.html.erb',
:template => 'exit_interviews/print_exit_interview.pdf.erb',
:orientation => 'Landscape', # default , Landscape
:page_height => 1000,
:dpi => '300',
:margin => {:top => 20, # default 10 (mm)
:bottom => 20,
:left => 20,
:right => 20},
:show_as_html => params[:debug].present?
end
end
end
在我写的帖子中:打印退出面试。是的,这个错误似乎是正确的。在
员工辞职表中可能没有ID为空的记录。params
中可能没有ID
属性
如果要减轻此错误,请使用EmployeeResignation.find_by(id:params[:id])
。.find()
在数据库中未找到记录时抛出错误。另一方面,find_by
在未按指定条件找到记录时将返回nil
可以进行很好的讨论。服务器日志中的参数是什么?请发布这些参数。看起来你在其他地方都依赖员工id
,为什么不试试这个而不是:id
作为一个参数呢我想问题出在你的这行@employee\u demission=EmployeeResignation.find(参数[:id])
确保为参数提供的id有效。或者您可以使用@employee\u demission=EmployeeResignation.find\u by(id:params[:id])
这将处理异常。@Anubhi Golecha,在方法的第一行使用呈现json:params并返回false
。问题解决了吗?现在它没有给出任何错误,但当我使用不同的员工id登录时,它会显示上一个员工id的记录。@AnubhiGolechha这是一个单独的问题,有很多可能能力。可能是您正在传递以前在路线中使用的员工ID。正如@Paven在评论中提到的,请在params
中发布您收到的信息。