我正在制作的一个小型测试网站上有一个帖子控制器。我希望网站有一个“保存草稿”/组合自动保存功能,因为该网站会有很长的帖子,用户可能想要离开并回来完成。但是,我之前(或任何应用程序)从未在 Rails 应用程序中构建过自动保存/保存功能。什么是一个好的,RESTful 方式来做到这一点?
这是我当前的控制器操作:
post_controller.rb
def create
@post = params[:post]
if @post.save
flash.now[:success] = "Post created!"
else
render_errors_now(@post)
end
respond_to do |format|
format.html {redirect_to Discussion.find(session[:discussion_id])}
format.js
end
end
如您所见,用户远程发布。
这是当前的 post.rb 模型:
attr_accessible :content, :title
validates :title, :presence => true
validate :title_character_length
validates :content, :length => { :maximum => 10000 }
validates :user_id, :presence => true
validates :discussion_id, :presence => true
belongs_to :user
belongs_to :discussion
default_scope :order => 'posts.created_at ASC'
def title_character_length
#some code that checks length
end
我需要从这段代码中完成以下事情..
- 定期自动保存(可能间隔 1 分钟)
- 提供保存草稿的选项
- 选择要运行的验证:例如,我希望允许用户保存标题超过允许长度的草稿,但不允许他们实际发布具有该标题的帖子。
我也很好奇保存草稿的良好 Rails 做法是什么:我应该向 post 模型添加属性“draft”吗?或者创建一个草稿帖子模型?
好的,如果我需要提供更多信息,请发表评论。我很想听听人们的意见!感谢大家!