Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 在Ruby on Rails中呈现w参数或重定向w错误_Ruby On Rails_Validation_Redirect_Render - Fatal编程技术网

Ruby on rails 在Ruby on Rails中呈现w参数或重定向w错误

Ruby on rails 在Ruby on Rails中呈现w参数或重定向w错误,ruby-on-rails,validation,redirect,render,Ruby On Rails,Validation,Redirect,Render,我使用的是RubyonRails,我的网站上有一些东西,用户可以点击保存,他们会被重定向到一个带有登录和注册的页面,这样用户就可以继续使用任何一个选项并保存内容。在显示正确的用户验证错误时出现问题,b/c我需要使用重定向_to users/new来传递带有用户正在保存的对象id的参数,如果我使用render:new,则会显示错误,但对象id会丢失。有人能解决这个问题吗 将原始项目id存储在会话中,继续正常登录/注册过程,完成后,如果会话中有保存项目,则重定向到处理保存的操作(它现在可以从会话中获

我使用的是RubyonRails,我的网站上有一些东西,用户可以点击保存,他们会被重定向到一个带有登录和注册的页面,这样用户就可以继续使用任何一个选项并保存内容。在显示正确的用户验证错误时出现问题,b/c我需要使用重定向_to users/new来传递带有用户正在保存的对象id的参数,如果我使用render:new,则会显示错误,但对象id会丢失。有人能解决这个问题吗

将原始项目id存储在会话中,继续正常登录/注册过程,完成后,如果会话中有保存项目,则重定向到处理保存的操作(它现在可以从会话中获取项目id并继续)

“出于好奇,在会话中保存对象本身有什么问题吗?这样我就不必执行第二次数据库查找来再次找到对象。”——TenJack (这可能是一个新的StackOverflow问题)

在会话中保存项是一件坏事-因为在迁移模型对象(例如添加列或类似内容)时,会话中的数据现在不再是模型类型的有效对象。它仍然会有旧的属性列表而不是新的属性列表。。。它将显示为无效对象


这就是为什么最好只存储id—因为您将从db中获取一个新的、正确实例化的对象。

以防万一:可能不是项本身,而是它的id)是的。编辑以反映评论。出于好奇,在会话中保存对象本身有什么错?这样,我就不必再执行第二次数据库查找来再次查找对象。另外,将会话值放入一个像user.save_with(session[:object])一样保存的用户方法中如何。通过这种方式,我可以将对象save(如果存在)放在带有用户save的事务中。我认为,如果对象本身在会话中,您将遇到各种并发问题,更不用说最好存储尽可能少的数据量。