プレビュー機能つける

Rails4
リソースを登録する前にプレビューしたい!

View

_form.html.eb

プレビュー用submitには、name属性にpreviewを表す文字を割り当てる。

...
      <div class="control-group">
        <%= f.label :body, '本文', class: 'control-label' %>
        <div class="controls">
          <%= f.text_area :body, class: 'span9', size: "0x30" %>
        </div>

        <div class="actions">
          <%= f.submit class: "btn btn-primary", :'data-type' => :html %>
          <%= link_to 'キャンセル', admin_blocks_path, class: 'btn' %>
          <%= f.submit 'プレビュー', class: 'btn btn-success', target: "_blank", name: "preview", style: "margin-left:20px" %>
        </div>
...

Controller

params[:preview]に値がある時は、previewテンプレートをRenderする。

class Admin::PostsController < Admin::BaseController
  before_action :render_preview_if, only: %w[create update]

  def create
  ....
  end

  def update
  ....
  end

private 

  def render_preview_if
    if params[:preview]
      @post = Post.new(post_params)
      render 'preview', layout: "application"
    end
  end

  def block_params
  ....
  end
end

OK。
before_actionの名前がいまいちっぽい、、