Ruby on rails 当从respond\u调用before\u操作时,为什么不执行before\u操作?

Ruby on rails 当从respond\u调用before\u操作时,为什么不执行before\u操作?,ruby-on-rails,controller,before-filter,Ruby On Rails,Controller,Before Filter,我有一个操作,它在控制器中的:edit和:new操作之前设置一个可验证的实例。如果我在请求中直接调用这些操作,那么这种方法是有效的。但是,如果调用:update或:create失败,然后在块内执行response toformat.html{render action::edit},则不会触发before\u操作。为什么会这样?因为渲染操作::edit实际上并不调用控制器操作,而是只渲染编辑模板 您将在Rails指南中找到更多信息: 我也这么认为,但如何解决回调问题?我发现这是关于创建帮助器方法

我有一个操作,它在控制器中的
:edit
:new
操作之前设置一个可验证的实例。如果我在请求中直接调用这些操作,那么这种方法是有效的。但是,如果调用
:update
:create
失败,然后在
内执行
response to
format.html{render action::edit}
,则不会触发
before\u操作。为什么会这样?

因为
渲染操作::edit
实际上并不调用控制器操作,而是只渲染
编辑
模板

您将在Rails指南中找到更多信息:


我也这么认为,但如何解决回调问题?我发现这是关于创建帮助器方法的,它可以记忆实例变量。这是一条出路还是有更好的解决方案?