If you have a form with multiple buttons, you can detect which button was clicked by checking the passed parameters. Learn how in this episode.
<!-- projects/new.rhtml -->
<% if params[:preview_button] %>
<%= textilize @project.description %>
<% end %>
...
<%= submit_tag 'Create' %>
<%= submit_tag 'Preview', :name => 'preview_button' %>
# projects_controller.rb
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