Визуализация правильного действия в родительском контроллере при использовании иерархии наследования - Rails - PullRequest
1 голос
/ 17 мая 2011

Я работаю с базой кода, которая имеет эту иерархию наследования одной таблицы:

BlogEntryWizardController

BlogEntryWizardController (BEWC) использует ту же модель, что BlogEntries (B)использует.Единственное реальное различие между BEWC и BEC - это представления (один из них - просто учебное пособие для другого).После отправки формы в мастере он продолжает отправлять пользователя на действие «показать» BEC, родителя.Это происходит в CommonEntryController (CEC):

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

Это вызывает метод show BEC, но мне нужно, чтобы он вызывал переопределенный метод show в BEWC.Есть ли способ различить в СЕ, который «показывает» действие, чтобы вызвать соответственно?

Спасибо за ваши два цента.

1 Ответ

0 голосов
/ 26 августа 2011

Внутри действия show в BEC отправьте перенаправление на контроллер show:

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

Этого недостаточно, поскольку переменные экземпляра не сохраняются между контроллерами.Таким образом, вы можете сохранить переменную экземпляра BEC в сеансе и извлечь ее из вашего контроллера BEWC в вашем действии "show".

...