为什么从 respond_to 调用操作时 before_action 不执行?
Why is a before_action not executed when the action is called from respond_to?
我有一个动作,它在控制器中的 :edit
和 :new
动作之前设置一个可验证的实例。如果我在请求中直接调用这些操作,这将起作用。但是,如果我调用 :update
或 :create
并且它们失败,之后在 respond_to
块中执行 format.html { render action: :edit }
,则 before_action
不会被触发。这是为什么?
因为render action: :edit
实际上并没有调用控制器动作,只是渲染了edit
模板。
您可以在 Rails 指南中找到更多信息:
我有一个动作,它在控制器中的 :edit
和 :new
动作之前设置一个可验证的实例。如果我在请求中直接调用这些操作,这将起作用。但是,如果我调用 :update
或 :create
并且它们失败,之后在 respond_to
块中执行 format.html { render action: :edit }
,则 before_action
不会被触发。这是为什么?
因为render action: :edit
实际上并没有调用控制器动作,只是渲染了edit
模板。
您可以在 Rails 指南中找到更多信息: