Как использовать перенаправление и передать объект в действие редактирования? Следующий код не работает:
def edit @promotion = Promotion.find_by_id(@params['promo_id']) end def update promotion = Promotion.find(params[:promotion_profile][:promotion_id]) promo_perfil = promotion.profile if promo_perfil.update_attributes(params[:promotion_profile]) redirect_to admin_edit_path(promotion.id => @params[:promo_id]) else end
Действие редактирования ищет params['promo_id'] (почему @params['promo_id']?).
params['promo_id']
@params['promo_id']
Итак, пройдите :promo_id таким образом:
:promo_id
redirect_to admin_edit_path(:promo_id => promotion)
Вы не должны перенаправлять в этом случае просто: render :action => :edit
render :action => :edit
Это стандартное поведение Rails, вы увидите это во всех контроллерах scaffolded как способ рендеринга формы редактирования с текущим объектом вдействие по обновлению без необходимости вставлять объекты в файлы cookie для передачи.