首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

是否在重定向到新视图时保留rails中的验证错误消息?

在Rails中,重定向到新视图时默认情况下是不会保留验证错误消息的。这是因为重定向会导致HTTP请求的结束,而验证错误消息是存储在flash中的,flash在请求结束后会被清空。

如果希望在重定向到新视图时保留验证错误消息,可以通过以下几种方式实现:

  1. 使用session来存储验证错误消息:可以将验证错误消息存储在session中,然后在重定向后的新视图中从session中读取并显示错误消息。这样可以确保错误消息在重定向后仍然可用。但需要注意的是,使用session存储错误消息可能会增加服务器的负载和存储开销。
  2. 使用flash.now来显示错误消息:flash.now是flash的一个特殊方法,可以在当前请求中显示flash消息,而不会将其存储到下一个请求中。可以在控制器中使用flash.now来设置验证错误消息,并在新视图中显示它们。这样可以确保错误消息在重定向后仍然可见,而不会在下一个请求中显示。
  3. 使用模型实例变量传递错误消息:在控制器中,可以将验证错误消息存储在模型实例变量中,然后在重定向后的新视图中直接使用该实例变量来显示错误消息。这种方式不需要使用flash或session,可以直接在视图中访问错误消息。

需要根据具体的业务需求和代码结构选择合适的方式来保留验证错误消息。在实际开发中,可以根据具体情况选择使用哪种方式或结合多种方式来实现。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

HTTP 响应代码

成功的含义取决于HTTP方法: GET:资源已被提取并在消息正文中传输。 HEAD:实体标头位于消息正文中。 POST:描述动作结果的资源在消息体中传输。...如果客户端是浏览器的话,那么用户浏览器应保留发送了该请求的页面,而不产生任何文档视图上的变化,即使按照规范新的或更新后的元信息应当被应用到用户浏览器活动视图中的文档。...这个方法的存在主要是为了允许由脚本激活的POST请求输出重定向到一个新的资源。...412 Precondition Failed 服务器在验证在请求的头字段中给出先决条件时,没能满足其中的一个或多个。...这个状态码允许客户端在获取资源时在请求的元信息(请求头字段数据)中设置先决条件,以此避免该请求方法被应用到其希望的内容以外的资源上。

1.3K10

HTTP响应代码详解

HTTP状态码负责表示客户端HTTP请求的返回结果、标记服务器端处理是否正常、通知出现的错误等工作。状态码由3位数表示,数字中的第一位定义了响应类。...HEAD:实体标头位于消息正文中。 POST:描述动作结果的资源在消息体中传输。 TRACE:消息正文包含服务器收到的请求消息 201 Created 该请求已成功,并因此创建了一个新的资源。...如果客户端是浏览器的话,那么用户浏览器应保留发送了该请求的页面,而不产生任何文档视图上的变化,即使按照规范新的或更新后的元信息应当被应用到用户浏览器活动视图中的文档。...这个方法的存在主要是为了允许由脚本激活的POST请求输出重定向到一个新的资源。...412 Precondition Failed 服务器在验证在请求的头字段中给出先决条件时,没能满足其中的一个或多个。

1.3K00
  • RFC2616-HTTP1.1-Status Code(状态码规定部分—译文)

    此响应主要用于允许输入的动作而不引起对用户代理的活动文档视图的更改,尽管任何新的或更新的元信息都应应用于当前在用户代理的活动视图中的文档。   ...Note:当收到301状态码后自动重定向POST请求时,一些现有的HTTP/1.0用户代理将错误地将其更改为GET请求。...该方法主要用于允许POST激活(POST-activated)的脚本的输出将用户代理重定向到所选择的资源。新的URI不是最初请求的资源的替代引用。...10.4.2 401 未经授权的(Unauthorized)   在发出请求时需要验证用户的身份信息。...HTTP询问相关的身份验证的详细说明在“HTTP身份验证:简单扼要地访问身份验证[43]”中。 10.4.3 402 支付要求(Payment Required)   该状态码会在未来提供使用方法。

    1K40

    RFC2616-HTTP1.1-Status Code(状态码规定部分—译文)

    此响应主要用于允许输入的动作而不引起对用户代理的活动文档视图的更改,尽管任何新的或更新的元信息都应应用于当前在用户代理的活动视图中的文档。   ...Note:当收到301状态码后自动重定向POST请求时,一些现有的HTTP/1.0用户代理将错误地将其更改为GET请求。...该方法主要用于允许POST激活(POST-activated)的脚本的输出将用户代理重定向到所选择的资源。新的URI不是最初请求的资源的替代引用。...10.4.2 401 未经授权的(Unauthorized)   在发出请求时需要验证用户的身份信息。...HTTP询问相关的身份验证的详细说明在“HTTP身份验证:简单扼要地访问身份验证[43]”中。 10.4.3 402 支付要求(Payment Required)   该状态码会在未来提供使用方法。

    97620

    带你认识 flask 用户登录

    用户登入 让我们回顾一下登录视图函数,它实现了一个模拟登录,只发出一个flash()消息。现在,应用可以访问用户数据,并知道如何生成和验证密码哈希值,该视图函数就可以完工了。...密码验证时,将验证存储在数据库中的密码哈希值与表单中输入的密码的哈希值是否匹配。所以,现在我有两个可能的错误情况:用户名可能是无效的,或者用户密码是错误的。...该函数会将用户登录状态注册为已登录,这意味着用户导航到任何未来的页面时,应用都会将用户实例赋值给current_user变量。 然后,只需将新登录的用户重定向到主页,我就完成了整个登录过程。...当一个没有登录的用户访问被@login_required装饰器保护的视图函数时,装饰器将重定向到登录页面,不过,它将在这个重定向中包含一些额外的信息以便登录后的回转。...攻击者可以在next参数中插入一个指向恶意站点的URL,因此应用仅在重定向URL是相对路径时才执行重定向,这可确保重定向与应用保持在同一站点中。

    2.1K10

    HTTP1.1协议状态码

    100 的目的是允许正在发送带有请求正文的请求消息的客户端确定源服务器是否愿意接受请求(基于请求标头)在客户端发送请求正文之前。...诠释: 使用300作为响应码时, 一般在 get或head请求时, 才可以, 因为这两部分都属于资源访问, 而这部分资源在代理服务器不能够解决是, 推荐客户到目标资源地址访问, 但要由客户端检测,是不是无限重定向...注意:在之后自动重定向POST请求时 收到301状态代码,一些现有的HTTP / 1.0用户代理 会错误地将其更改为GET请求。...存在此方法主要是为了允许POST激活的脚本的输出将用户代理重定向到所选资源。新URI不能替代原始请求的资源。303响应一定不能被缓存,但是对第二个(重定向的)请求的响应可能是可缓存的。...HTTP访问身份验证在“ HTTP身份验证:基本和摘要访问身份验证” ---- 402 Payment Required (需要付款) 该代码保留供将来使用。

    2.7K40

    常见的HTTP状态码有哪些「建议收藏」

    如果客户端是浏览器的话,那么用户浏览器应保留发送了该请求的页面,而不产生任何文档视图上的变化,即使按照规范新的或更新后的元信息应当被应用到用户浏览器活动视图中的文档。...注意:虽然RFC 1945和RFC 2068规范不允许客户端在重定向时改变请求的方法,但是很多现存的浏览器将302响应视作为303响应,并且使用 GET 方式访问在 Location 中规定的 URI,...303对应当前请求的响应可以在另一个 URI 上被找到,而且客户端应当采用 GET 的方式访问那个资源。这个方法的存在主要是为了允许由脚本激活的POST请求输出重定向到一个新的资源。...在添加了表明请求消息体长度的有效 Content-Length 头之后,客户端可以再次提交该请求。 412服务器在验证在请求的头字段中给出先决条件时,没能满足其中的一个或多个。...重定向URI “黑洞”,例如每次重定向把旧的 URI 作为新的 URI 的一部分,导致在若干次重定向后 URI 超长。 客户端正在尝试利用某些服务器中存在的安全漏洞攻击服务器。

    1.1K20

    python接口自动化(七)--状态码详解对照表(详解)

    -399 重定向,用于移动的文件并且常被包含在定位头信息中制定新的地址信息 4XX 400-499 客户端错误,用于指出客户端的错误 5XX 500-599 服务器错误,用于指出服务器的错误 常见的状态码...如果客户端是浏览器的话,那么用户浏览器应保留发送了该请求的页面,而不产生任何文档视图上的变化,即使按照规范新的或更新后的元信息应当被应用到用户浏览器活动视图中的文档。   ...注意:虽然RFC 1945和RFC 2068规范不允许客户端在重定向时改变请求的方法,但是很多现存的浏览器将302响应视作为303响应,并且使用 GET 方式访问在 Location 中规定的 URI,...303 对应当前请求的响应可以在另一个 URI 上被找到,而且客户端应当采用 GET 的方式访问那个资源。这个方法的存在主要是为了允许由脚本激活的POST请求输出重定向到一个新的资源。...412 服务器在验证在请求的头字段中给出先决条件时,没能满足其中的一个或多个。

    1.3K41

    Http常见的状态码

    如果客户端是浏览器的话,那么用户浏览器应保留发送了该请求的页面,而不产生任何文档视图上的变化,即使按照规范新的或更新后的元信息应当被应用到用户浏览器活动视图中的文档。...注意:虽然RFC 1945和RFC 2068规范不允许客户端在重定向时改变请求的方法,但是很多现存的浏览器将302响应视作为303响应,并且使用 GET 方式访问在 Location 中规定的 URI,...这个方法的存在主要是为了允许由脚本激活的POST请求输出重定向到一个新的资源。这个新的 URI 不是原始资源的替代引用。同时,303响应禁止被缓存。当然,第二个请求(重定向)可能被缓存。...412 Precondition Failed 服务器在验证在请求的头字段中给出先决条件时,没能满足其中的一个或多个。...重定向URI “黑洞”,例如每次重定向把旧的 URI 作为新的 URI 的一部分,导致在若干次重定向后 URI 超长。客户端正在尝试利用某些服务器中存在的安全漏洞攻击服务器。

    1K30

    HTTP状态码对照表(全部状态_建议收藏)

    如果客户端是浏览器的话,那么用户浏览器应保留发送了该请求的页面,而不产生任何文档视图上的变化,即使按照规范新的或更新后的元信息应当被应用到用户浏览器活动视图中的文档。   ...注意:虽然RFC 1945和RFC 2068规范不允许客户端在重定向时改变请求的方法,但是很多现存的浏览器将302响应视作为303响应,并且使用 GET 方式访问在 Location 中规定的 URI,...303 对应当前请求的响应可以在另一个 URI 上被找到,而且客户端应当采用 GET 的方式访问那个资源。这个方法的存在主要是为了允许由脚本激活的POST请求输出重定向到一个新的资源。...412 服务器在验证在请求的头字段中给出先决条件时,没能满足其中的一个或多个。...重定向URI “黑洞”,例如每次重定向把旧的 URI 作为新的 URI 的一部分,导致在若干次重定向后 URI 超长。   客户端正在尝试利用某些服务器中存在的安全漏洞攻击服务器。

    1.7K20

    HTTP状态码大全

    如果客户端是浏览器的话,那么用户浏览器应保留发送了该请求的页面,而不产生任何文档视图上的变化,即使按照规范新的或更新后的元信息应当被应用到用户浏览器活动视图中的文档。...注意:虽然RFC 1945和RFC 2068规范不允许客户端在重定向时改变请求的方法,但是很多现存的浏览器将302响应视作为303响应,并且使用 GET 方式访问在 Location 中规定的 URI,...这个方法的存在主要是为了允许由脚本激活的POST请求输出重定向到一个新的资源。这个新的 URI 不是原始资源的替代引用。同时,303响应禁止被缓存。当然,第二个请求(重定向)可能被缓存。...412 Precondition Failed 服务器在验证在请求的头字段中给出先决条件时,没能满足其中的一个或多个。...重定向URI “黑洞”,例如每次重定向把旧的 URI 作为新的 URI 的一部分,导致在若干次重定向后 URI 超长。 客户端正在尝试利用某些服务器中存在的安全漏洞攻击服务器。

    1.4K40

    带你认识 flask web 表单

    你在一些字段中看到的可选参数validators用于验证输入字段是否符合预期。DataRequired验证器仅验证字段输入是否为空。更多的验证器将会在未来的表单中接触到。...当form.validate_on_submit()返回True时,登录视图函数调用从Flask导入的两个新函数。 flash()函数是向用户显示消息的有效途径。...登录视图函数中使用的第二个新函数是redirect()。这个函数指引浏览器自动重定向到它的参数所关联的URL。当前视图函数使用它将用户重定向到应用的主页。...如果你尝试过提交无效的数据,相信你会注意到,虽然验证机制查无遗漏,却没有给出表单错误的具体线索。下一个任务是通过在验证失败的每个字段旁边添加有意义的错误消息来改善用户体验。...实际上,表单验证器已经生成了这些描述性错误消息,所缺少的不过是模板中的一些额外的逻辑来渲染它们。

    2.3K20

    Flask表单之WTForms和flask-wtf

    你在一些字段中看到的可选参数validators用于验证输入字段是否符合预期。DataRequired验证器仅验证字段输入是否为空。更多的验证器将会在未来的表单中接触到。...当form.validate_on_submit()返回True时,登录视图函数调用从Flask导入的两个新函数。 flash()函数是向用户显示消息的有效途径。...登录视图函数中使用的第二个新函数是redirect()。这个函数指引浏览器自动重定向到它的参数所关联的URL。当前视图函数使用它将用户重定向到应用的主页。...如果你尝试过提交无效的数据,相信你会注意到,虽然验证机制查无遗漏,却没有给出表单错误的具体线索。下一个任务是通过在验证失败的每个字段旁边添加有意义的错误消息来改善用户体验。...实际上,表单验证器已经生成了这些描述性错误消息,所缺少的不过是模板中的一些额外的逻辑来渲染它们。

    4K20

    HTTP所有常用状态码的含义

    如果客户端是浏览器的话,那么用户浏览器应保留发送了该请求的页面,而不产生任何文档视图上的变化,即使按照规范新的或更新后的元信息应当被应用到用户浏览器活动视图中的文档。 ...303 See Other 对应当前请求的响应可以在另一个URI上被找到,而且客户端应当采用GET的方式访问那个资源。这个方法的存在主要是为了允许由脚本激活的POST请求输出重定向到一个新的资源。...412 Precondition Failed 服务器在验证在请求的头字段中给出先决条件时,没能满足其中的一个或多个。...重定向URI“黑洞”,例如每次重定向把旧的URI作为新的URI的一部分,导致在若干次重定向后URI超长。  客户端正在尝试利用某些服务器中存在的安全漏洞攻击服务器。...5xx服务器错误 这类状态码代表了服务器在处理请求的过程中有错误或者异常状态发生,也有可能是服务器意识到以当前的软硬件资源无法完成对请求的处理。

    87220

    HTTP状态码详解

    如果客户端是浏览器的话,那么用户浏览器应保留发送了该请求的页面,而不产生任何文档视图上的变化,即使按照规范新的或更新后的元信息应当被应用到用户浏览器活动视图中的文档。...303 对应当前请求的响应可以在另一个 URI 上被找到,而且客户端应当采用 GET 的方式访问那个资源。这个方法的存在主要是为了允许由脚本激活的POST请求输出重定向到一个新的资源。...412 服务器在验证在请求的头字段中给出先决条件时,没能满足其中的一个或多个。...重定向URI “黑洞”,例如每次重定向把旧的 URI 作为新的 URI 的一部分,导致在若干次重定向后 URI 超长。 客户端正在尝试利用某些服务器中存在的安全漏洞攻击服务器。...5xx 服务器错误 这类状态码代表了服务器在处理请求的过程中有错误或者异常状态发生,也有可能是服务器意识到以当前的软硬件资源无法完成对请求的处理。

    50710

    HTTP状态码详解

    如果客户端是浏览器的话,那么用户浏览器应保留发送了该请求的页面,而不产生任何文档视图上的变化,即使按照规范新的或更新后的元信息应当被应用到用户浏览器活动视图中的文档。...303 对应当前请求的响应可以在另一个 URI 上被找到,而且客户端应当采用 GET 的方式访问那个资源。这个方法的存在主要是为了允许由脚本激活的POST请求输出重定向到一个新的资源。...412 服务器在验证在请求的头字段中给出先决条件时,没能满足其中的一个或多个。...重定向URI “黑洞”,例如每次重定向把旧的 URI 作为新的 URI 的一部分,导致在若干次重定向后 URI 超长。 客户端正在尝试利用某些服务器中存在的安全漏洞攻击服务器。...5xx 服务器错误 这类状态码代表了服务器在处理请求的过程中有错误或者异常状态发生,也有可能是服务器意识到以当前的软硬件资源无法完成对请求的处理。

    81200

    分享一些整理的HTTP状态码及其详解

    通常,这些状态代码用来重定向。 4xx(请求错误) 这些状态代码表示请求可能出错,妨碍了服务器的处理。 5xx(服务器错误)这些状态代码表示服务器在尝试处理请求时发生内部错误。...如果客户端是浏览器的话,那么用户浏览器应保留发送了该请求的页面,而不产生任何文档视图上的变化,即使按照规范新的或更新后的元信息应当被应用到用户浏览器活动视图中的文档。   ...303 对应当前请求的响应可以在另一个 URI 上被找到,而且客户端应当采用 GET 的方式访问那个资源。这个方法的存在主要是为了允许由脚本激活的POST请求输出重定向到一个新的资源。...412 服务器在验证在请求的头字段中给出先决条件时,没能满足其中的一个或多个。...重定向URI “黑洞”,例如每次重定向把旧的 URI 作为新的 URI 的一部分,导致在若干次重定向后 URI 超长。   客户端正在尝试利用某些服务器中存在的安全漏洞攻击服务器。

    82110

    HTTP状态码详解对照表

    如果客户端是浏览器的话,那么用户浏览器应保留发送了该请求的页面,而不产生任何文档视图上的变化,即使按照规范新的或更新后的元信息应当被应用到用户浏览器活动视图中的文档。...注意:虽然RFC 1945和RFC 2068规范不允许客户端在重定向时改变请求的方法,但是很多现存的浏览器将302响应视作为303响应,并且使用GET方式访问在Location中规定的URI,而无视原先请求的方法...303 对应当前请求的响应可以在另一个URI上被找到,而且客户端应当采用GET的方式访问那个资源。这个方法的存在主要是为了允许由脚本激活的POST请求输出重定向到一个新的资源。...在添加了表明请求消息体长度的有效Content-Length头之后,客户端可以再次提交该请求。 412 服务器在验证在请求的头字段中给出先决条件时,没能满足其中的一个或多个。...重定向URI“黑洞”,例如每次重定向把旧的URI作为新的URI的一部分,导致在若干次重定向后URI超长。客户端正在尝试利用某些服务器中存在的安全漏洞攻击服务器。

    62240

    Django 用户认证系统使用总结

    ,同时要求被验证用户未被删除(is_delete=1),也就是说,验证用户账号密码前获取的用户数据时,自动已经被删除的用户 user=authenticate(username='john', password...='secret',is_delete=1) 当然,除了是否删除,是否禁用等字段,其它字段一般不推荐这么做,可以在验证用户账号密码前进行其它前置条件的验证 注意:默认的,django会优先验证我们显示提供的参数...,最后再验证is_active是否未1,如果为1,则返回None 权限和认证(Permissions and Authorization) 略 Web请求中的认证 Django为每个请求提供了 request.user...注意:用户登录后,会话中依旧保留登录前的的任何匿名会话数据。.... ... else: # do something,比如返回一个登录错误消息 ...

    1.8K10

    http状态码

    如果客户端是浏览器的话,那么用户浏览器应保留发送了该请求的页面,而不产生任何文档视图上的变化,即使按照规范新的或更新后的元信息应当被应用到用户浏览器活动视图中的文档。   ...注意:虽然RFC 1945和RFC 2068规范不允许客户端在重定向时改变请求的方法,但是很多现存的浏览器将302响应视作为303响应,并且使用 GET 方式访问在 Location 中规定的 URI,...303 对应当前请求的响应可以在另一个 URI 上被找到,而且客户端应当采用 GET 的方式访问那个资源。这个方法的存在主要是为了允许由脚本激活的POST请求输出重定向到一个新的资源。...412 服务器在验证在请求的头字段中给出先决条件时,没能满足其中的一个或多个。...重定向URI “黑洞”,例如每次重定向把旧的 URI 作为新的 URI 的一部分,导致在若干次重定向后 URI 超长。   客户端正在尝试利用某些服务器中存在的安全漏洞攻击服务器。

    22930
    领券