Я получаю двойную ошибку рендеринга, от которой я не могу избавиться в методе обновления моей модели.Не могу избавиться от AbstractController :: DoubleRenderError
Вот код для контроллера
class Admin::CmsHappeningNowFeatureController < ApplicationController
def index
# Various model data retrieval...
render 'admin/cms/hn_features/index', layout: 'admin_cms'
end
# Works fine
def edit
@feature = CmsHappeningNowFeature.find_by_id(params[:id])
render 'admin/cms/hn_features/feature', layout: 'admin_cms'
end
# Throws a AbstractController::DoubleRenderError upon submission
def update
@feature = CmsHappeningNowFeature.find_by_id(params[:id])
@feature.attributes = params[:cms_happening_now_feature]
if @feature.save
redirect_to(:action => index, :notice => "Successfully updated feature.") and return
end
render 'admin/cms/hn_features/feature', layout: 'admin_cms'
end
# ... rest of the class
end
При перенаправлении на другой контроллер, проблема исчезает. Кажется, что перенаправление на один и тот же контроллер делает рельсы исполнением метода без фактической отправки перенаправления. При просмотре журнала при отправке формы обновления вызывается update
, затем вызывается index
, render
из индекса и , затем выдается и не выполняется перенаправление.
Что мне не хватает? Каков обходной путь?
Ха! Благодаря!Я не заметил, что ': action => index' фактически вызывал' index' и возвращал результат в ': action' – Damp