previewボタンを付ける方法

Railscasts - Multibutton Form
より。

previewは結構使うんじゃないかな。

やってみた

view

通常のsubmitに加えprevie_buttonというnameで追加。
表示部は、params[:preview_button]がある場合のみ表示ロジックを記載。

<% if params[:preview_button] %>
  <%= textilize @project.description %>
<% end %>
...
<%= submit_tag 'Create' %>
<%= submit_tag 'Preview', :name => 'preview_button' %>
controller

params[:preview_button]がある場合はnewへrender。

def create
  @project = Project.new(params[:project])
  if params[:preview_button] || !@project.save
    render :action => 'new'
  else
    flash[:notice] = "Successfully created project."
    redirect_to project_path(@project)
  end
end


更新(edit/update)も同様の方法で実装可能。
動画ではform_remote_for / submit_to_remote も紹介。