我有一个用户可以填写的表单,点击“创建”按钮将发出POST请求,以使用表单数据在数据库中创建新条目。
现在,应该只允许登录用户创建数据库条目,但我希望所有用户都能够填写表单。仅在单击“创建”时,我是否希望我的应用程序重定向未登录到登录页面的用户。登录后,我想继续处理POST请求并创建数据库条目,而无需用户再次输入所有表单数据。
最好的处理方法是什么?将POST数据放入会话中?但是,在成功登录后,我想在原始控制器/操作中创建数据库条目(以便不重复代码),并且从我的应用程序中发出POST请求(在after-successful-login-method中)似乎奇怪。有更好的想法吗?
谢谢!
答案 0 :(得分:0)
您没有提及如何进行身份验证,因此我怀疑您是手动执行此操作。如果您使用(我强烈建议您这样做),像Devise这样的宝石进行注册,您只需要向控制器添加Devise的身份验证助手即可。
要手动执行此操作,每次用户注册时,都会设置与他/她绑定的会话ID变量。然后,您只需检查一下他/她是否已注册。如果没有,您只是不允许操作和重定向。