rails,预览按钮的形式问题

时间:2010-10-16 08:45:13

标签: ruby-on-rails ruby

我正在尝试根据Ryan Bates的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 /篇。

1 个答案:

答案 0 :(得分:1)

if params[:preview_button] || !@article.update_attributes(params[:article])

只有在预览的情况下,预订的param不存在正在更新的文章。

你想要这样的东西:

@article.attributes = params[:article]
if params[:preview_button] or !@article.save
  render :action => 'edit