原创作者: hideto   阅读:1089次   评论:0条   更新时间:2011-05-26    
今天我们来看看Gmail里的Ajax自动保存草稿在Rails里的实现

首先在layout里引入Javascript标签
[coce]
<%= javascript_include_tag :defaults %>


posts_controller.rb
def new
  if request.get?
    @post = session[:post_draft] || Post.new
  else
    @post = Post.create(params:post])
    session[:post_draft] = nil
    redirecto_to :action => 'list'
  end
end

def save_draft
  session[:post_draft] = Post.new(params[:post])
  render :text => "<i>Draft saved at #{Time.now}</i>"
end


posts/new.rhtml
<% form_for :post, @post,
            :url => {:action => "new" },
            :html => {:id => 'post_form'} do |f| %>
  Title: <%= f.text_field :title %><br/>
  Body: <%= f.text_area :body %><br/>
  <%= submit_tag "Save Post" %>
<% end %>
<div id='draft-message' style='color:read;'>
</div>
<%= observe_form 'post_form',
                 :url => {:action => 'save_draft'},
                 :update => 'draft-message',
                 :frequency => 30 %>


BTW:以前就有过在蛙眼写博客然后发表时浏览器崩溃的情况,现在都先用文本文件写然后转贴,蛙眼怎么不把这个功能不加上呢?
评论 共 0 条 请登录后发表评论

发表评论

您还没有登录,请您登录后再发表评论

文章信息

Global site tag (gtag.js) - Google Analytics