我正在使用具有此单表继承层次结构的代码库:
BlogEntryWizardController< BlogEntriesController< CommonEntryController< ApplicationController中
BlogEntryWizardController(BEWC)使用与BlogEntriesController(BEC)使用的模型相同的模型。 BEWC和BEC之间唯一真正的区别是视图(一个是另一个的教程向导)。在向导中提交表单后,它会不断地将用户带到BEC(父母)的“显示”操作。这发生在CommonEntryController(CEC)中:
format.html {
render(:action => 'show')
}
这会调用BEC的show方法,但我需要它来调用BEWC中的overriden show方法。是否有一种方法可以在CE中区分“显示”动作以适当调用?
谢谢你的两分钱。
答案 0 :(得分:0)
在BEC内的“show”动作内,将重定向发送到show controller:
redirect_to :controller => "BEWC", :action => "show"
这样做是不够的,因为实例变量在控制器之间不是持久的。因此,您可以在会话中保存BEC实例变量,并在“show”操作中在BEWC控制器中检索它。