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 も紹介。