1

我正在使用具有此单表继承层次结构的代码库:

BlogEntryWizardController < BlogEntriesController < CommonEntryController < ApplicationController

BlogEntryWizardController (BEWC) 使用与 BlogEntriesController (BEC) 相同的模型。BEWC 和 BEC 之间唯一真正的区别是视图(一个只是另一个的教程向导)。在向导中提交表单后,它会不断将用户带到 BEC(父级)的“显示”操作。这发生在 CommonEntryController (CEC) 中:

format.html {
  render(:action => 'show')
}

这会调用 BEC 的 show 方法,但我需要它来调用 BEWC 中被覆盖的 show 方法。有没有办法在 CE 中区分要适当调用的“显示”动作?

谢谢你的两分钱。

4

1 回答 1

0

在 BEC 中的“show”操作中,将重定向发送到 show 控制器:

redirect_to :controller => "BEWC", :action => "show"

仅仅这样做是不够的,因为实例变量在控制器之间不是持久的。因此,您可以将 BEC 实例变量保存在会话中,并在 BEWC 控制器中的“显示”操作中检索它。

于 2011-08-25T23:07:59.383 回答