Ruby on rails RoR:如何在发布前对用户进行身份验证

Ruby on rails RoR:如何在发布前对用户进行身份验证,ruby-on-rails,ruby,post,redirect,login,Ruby On Rails,Ruby,Post,Redirect,Login,我有一个用户可以填写的表单,点击“创建”按钮将发出POST请求,用表单数据在数据库中创建一个新条目 现在,应该只允许登录用户创建数据库条目,但我希望所有用户都能够填写表单。只有在单击“创建”时,我才希望我的应用程序将未登录的用户重定向到登录页面。登录后,我希望继续处理POST请求并创建数据库条目,而无需用户再次输入所有表单数据 最好的处理方法是什么?将POST数据放入会话中?但是,成功登录后,我希望在原始控制器/操作中创建数据库条目(以便不重复代码),并且从应用程序中发出POST请求(在成功登录

我有一个用户可以填写的表单,点击“创建”按钮将发出POST请求,用表单数据在数据库中创建一个新条目

现在,应该只允许登录用户创建数据库条目,但我希望所有用户都能够填写表单。只有在单击“创建”时,我才希望我的应用程序将未登录的用户重定向到登录页面。登录后,我希望继续处理POST请求并创建数据库条目,而无需用户再次输入所有表单数据

最好的处理方法是什么?将POST数据放入会话中?但是,成功登录后,我希望在原始控制器/操作中创建数据库条目(以便不重复代码),并且从应用程序中发出POST请求(在成功登录后方法中)似乎很奇怪。还有更好的主意吗


谢谢

您没有提到如何进行身份验证,因此我怀疑您是手动进行身份验证的。如果您使用(我强烈建议您这样做)类似gem的设备进行注册,您只需将设备的身份验证助手添加到控制器中即可


要手动执行此操作,每次用户注册时,您都会设置一个与他/她绑定的会话id变量。然后,你只需检查他/她是否注册。如果没有,您就不允许操作和重定向。

您没有提到如何进行身份验证,因此我怀疑您是手动执行的。如果您使用(我强烈建议您这样做)类似gem的设备进行注册,您只需将设备的身份验证助手添加到控制器中即可


要手动执行此操作,每次用户注册时,您都会设置一个与他/她绑定的会话id变量。然后,你只需检查他/她是否注册。如果不允许,您就不允许操作和重定向。

我确实使用Desive,但使用before\u筛选器对用户进行身份验证!这对POST请求没有帮助,是吗?同样,我想将用户重定向到登录页面,并在成功授权后,返回到处理POST请求的create方法。是的,它也适用于POST,对于控制器的每个操作:)如果您想重定向回,只需使用redirect_to:back。哦,我不知道-关于如何使用户进行身份验证的任何想法!与omniauth集成。我的登录过程是通过Facebook和omniauth。所以我想认证你的用户!重定向到Facebook,然后返回到我的帖子请求…我还没有这样做,但这应该解释如何做:Thx。只是为了确保:验证用户!将重定向到登录页面。然后,您建议使用redirect_to:back,但这对POST请求应该如何工作?重定向到将发出302…我确实使用Desive,但之前的过滤器验证用户!这对POST请求没有帮助,是吗?同样,我想将用户重定向到登录页面,并在成功授权后,返回到处理POST请求的create方法。是的,它也适用于POST,对于控制器的每个操作:)如果您想重定向回,只需使用redirect_to:back。哦,我不知道-关于如何使用户进行身份验证的任何想法!与omniauth集成。我的登录过程是通过Facebook和omniauth。所以我想认证你的用户!重定向到Facebook,然后返回到我的帖子请求…我还没有这样做,但这应该解释如何做:Thx。只是为了确保:验证用户!将重定向到登录页面。然后,您建议使用redirect_to:back,但这对POST请求应该如何工作?将_重定向到将发出302。。。