Получение параметров, которые будут сохранены при обновлении в Rails - PullRequest
0 голосов
/ 14 февраля 2012

Взяв Post в качестве примера модели, скажем, Post имеет 2 атрибута, каждый из которых имеет валидацию.Когда вы собираетесь редактировать сообщение, скажите, что я изменяю 2 атрибута, и один из них не проходит проверку, в результате чего страница перезагружается.Мне кажется, что при перезагрузке страницы в форме отображаются ранее сохраненные версии атрибутов сообщения, а не только что введенные мной атрибуты, хотя только что введенные мной параметры указаны в параметрах.

Это будет обрабатываться в типичных действиях create, потому что объявление переменной post-экземпляра будет выглядеть так:

@post = Post.new(params[:post])

Однако в действиях update переменная post-instance выглядит следующим образом:

@post = Post.find(params[:id])

Таким образом, изменения, внесенные в форму, которые передаются в параметры, не отображаются в форме.Правильно ли я описываю это, и если да, то есть ли способ получить изменения, которые будут отображены в форме при сбое проверки?Или, может быть, только те изменения, которые не проходят проверку?

1 Ответ

1 голос
/ 14 февраля 2012

как говорит corey, вам нужно обновить атрибуты при обновлении так:

@ post = Post.find (params [: id])

if @post.update_attributes(params[:post])
  redirect_to post_path(@post)
else
  render :new
end

Вы в настоящее время не обновляете экземпляр сообщения, поэтому вы видите, что находится в базе данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...