2016-12-01 17 views
1

Его снова. После того, как два моих вопроса были решены вчера, попробуем еще один. На этот раз у меня есть некоторые проблемы с функцией обновления Ruby on Rails.Не найдено ни одного шаблона после обновления

Итак, в основном, обновление преуспевает. Он сохраняет новые данные, и все в порядке, ожидайте одного: когда я нажимаю кнопку «Сохранить», во внешнем интерфейсе ничего не происходит. Как я уже сказал, данные обновлены правильно, но, на мой взгляд, мне нужно redirectroot_path, так как есть перенаправление. Можете ли вы сказать мне, что я делаю неправильно? Я пробовал несколько вещей с другими переадресациями/рендерингом, но ничего не работало.

Этот код является частью моего контроллера:

def update 
    @resume = Resume.find(params[:id]) 
    if @resume.update_attributes(resume_params) 
     flash[:success] = 'The file has been updated!' 
     redirect_to root_path 
    else 
     render 'edit' 
    end 
    end 

И это ошибка я получил в журналах:

No template found for ResumesController#update, rendering head :no_content 
Completed 204 No Content in 96ms (ActiveRecord: 21.1ms) 

Заранее спасибо!

+0

Где код переднего конца? Страница редактирования? – lcguida

+0

У вас есть представление «app/views/resumes/edit.html.erb»? – max

+0

Вы должны использовать 'update' вместо' update_attributes'. Последнее является просто псевдонимом для «обновления», который по-прежнему существует по соображениям совместимости. – max

ответ

2

Это работало для меня, и, надеюсь, оно должно сделать для вас тоже, если оно сохранено в БД. Вместо «Flash» используйте «Alert». Я изменил код в соответствии с вашим кодом.

def update 
@resume = Resume.find(params[:id]) 
if @resume.update(profile_params) 
    redirect_to root_path, alert: "Your resume is saved!" 
else 
    render 'edit', alert: "Oops! There was a problem, please try again" 
end 
end