рельсы, кнопка предварительного просмотра в форме вопроса - PullRequest
1 голос
/ 16 октября 2010

Я пытаюсь настроить кнопку предварительного просмотра в форме редактирования на основе railscast Райана Бейтса.Есть две кнопки [редактировать] и [обновить].

Когда пользователь нажимает кнопку предварительного просмотра, вызывается функция «обновление» в контроллере.Если я просто установлю переменную @article на основе поиска таблицы статей (согласно приведенному ниже контроллеру), кнопка предварительного просмотра сбрасывает значения в форме на сохраненные данные, и я теряю свои правки.

Есть лиКак у меня может быть режим предварительного просмотра обновлений?Новый работает отлично, только редактирование имеет эту проблему.

  def update
    @article = Article.find(params[:id])

    if params[:preview_button] || !@article.update_attributes(params[:article])
      render :action => 'edit'
    else
      respond_to do |format|
        format.html { redirect_to(@article, :notice => 'Article was successfully updated.') }
      end
    end
  end

Редактировать: я попытался использовать приведенный ниже код

if params[:preview_button] || !@article.update_attributes(params[:article])
  @article = Article.new(params[:article])
  render :action => 'edit'
else

, который сохраняет данные, однако есть побочный эффект.Нажатие кнопки предварительного просмотра из [http://localhost:3000/articles/4/edit] перенаправления на [http://localhost:3000/articles/4] повторное нажатие здесь] приводит к новому виду [http://localhost:3000/articles].

1 Ответ

1 голос
/ 16 октября 2010
if params[:preview_button] || !@article.update_attributes(params[:article])

Только в случае отсутствия параметра preview_button статья обновляется.

Вам нужно что-то вроде:

@article.attributes = params[:article]
if params[:preview_button] or !@article.save
  render :action => 'edit
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...