Каким способом RESTful сохранять черновики сообщений?

У меня есть контроллер сообщений на небольшом тесте сайт я делаю. Я хочу иметь на сайте функцию «сохранить черновик» / комбинированное автосохранение, так как на сайте будут длинные сообщения, которые пользователи могут захотеть оставить и вернуться, чтобы закончить. Однако я никогда раньше не встраивал функцию автосохранения / сохранения в приложение Rails (или любое другое приложение). Каков хороший способ сделать это с помощью REST?

Вот мое текущее действие контроллера:

posts_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. Периодическое автосохранение (возможно, с интервалом в 1 минуту)
  2. Дайте возможность сохранить черновик
  3. Выберите, какие проверки запускать: я бы хотел разрешить пользователям, например, сохранять черновик с заголовком, превышающим допустимую длину, но не позволять им публиковать пост с таким заголовком.

Мне также любопытно, что является хорошей практикой в ​​Rails для сохранения черновиков: следует ли мне добавить атрибут «черновик» к модели публикации? Или создать черновик модели сообщений?

Хорошо, прокомментируйте, если мне нужно предоставить дополнительную информацию. Мне интересно услышать мнение людей! Спасибо всем!

5
задан Robert Harvey 17 July 2012 в 15:06
поделиться