我正在研究一个杂乱无章的铁轨应用程序。我在rails上有一个更新操作,对于成功和不成功的更新,都涉及到重定向(非渲染),因为路由被弄乱了,而且我无法轻松地键入render'edit'(我认为这将持续存在错误)。
我是否可以将对象错误持久化到视图中以将其显示为表单上的错误?因为就窗体而言,在视图上的重定向上不存在错误。看起来像这样:
complex_path = "/path_name/path_2name/edit/#{@product.id}"
if @product.update(part1_params)
flash[:notice] = completion_message
format.html { redirect_to complex_path
and return }
else
flash[:notice] = "Unable to save Product. "
format.html { redirect_to complex_path and return }
end
答案 0 :(得分:0)
嗯,有点黑,但是您可以在Flash哈希上使用自定义键。
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
navigationController?.setNavigationBarHidden(true, animated: false)
}
//reappears navigation bar on next page
override func viewWillDisappear(_ animated: Bool) {
super.viewWillDisappear(animated)
navigationController?.setNavigationBarHidden(false, animated: true)
}
现在,对于下一个请求,您可以遍历else
@product.errors.keys.each do |err_key|
flash[err_key] = @product.errors.full_messages_for(err_key).join(' ')
end
flash[:alert] = 'Unable to save Product.'
redirect_to ....
end
以获得错误(您应该忽略:alert o:notice键)。
这真的很丑,但是flash.keys
失败之后重定向很丑。...; P