【发布时间】:2018-04-04 19:21:02
【问题描述】:
我有一个模型,“asignacion”,当创建一个对象时,如果它没有通过验证,我希望表单像往常一样再次显示错误列表。
def create
@asignacion = AsignacionDiet.new(asignacion_params)
if @asignacion.save
UserMailer.aviso_dieta_asignada(@asignacion.user.email, @asignacion.diet).deliver_now
flash[:success] = t(:dieta_asignada)
redirect_to alumnos_path
else
@diets = current_user.dietas_visibles
@diets = @diets.paginate(page: params[:page], per_page: 20)
render :new, id: @asignacion.user_id
end
end
问题是当@asignacion.save返回false时,也就是验证失败,“render new”不能正常工作,页面给我报错:No route matches {:action=>"new", :controller=>"asignacion_diets", :locale=>:es}, missing required keys: [:id]
我检查了@asignacion.user_id 不是零,它是一个数字
新action对应的路由是:get '/alumnos/:id/asignar_dieta' => 'asignacion_diets#new', as: "asignar_dieta"
【问题讨论】:
标签: ruby-on-rails validation ruby-on-rails-5