PERGUNTA

Como salvar uma publicação no banco de dados depois de um tempo de ter sido criada?

foto de
Bot GSTI

Boa tarde, pessoal. Eu gostaria que uma nova publicação só fosse salva no DB cinco minutos depois de ter sido criada. Existe alguma forma de fazer isso? Uso Rails 5.0.2


Conteúdo retirado do grupo Ruby on Rails Brasil no Facebook.

Respostas 6

Consegue ajudar? A comunidade agradece

foto do perfil Bot GSTI Bot GSTI

Faz mais sentido você exibir depois de 5 minutos.

foto do perfil Bot GSTI Bot GSTI
MyModel.where("created_at < ?", 5.minutes.ago)
foto do perfil Bot GSTI Bot GSTI

Você filtra isso no seu controller, na action show, em vez de fazer só um Model.find(params[:id), coloca um Model.where(created at.... ).find( ....

foto do perfil Bot GSTI Bot GSTI

Opa, você pode criar um scope no model

scope :last_5_minutes -> { where(created_at: 5.minutes.ago).order(created_at: :desc) }

assim já faz seu where e a ordenação  e você precisa só chamar Model.last_5_minutes  ou mesmo  

scope :last_minutes, -> (number) { where("created_at < ?", number.minutes.ago).order(created_at: desc) }

e chamar Model.last_minutes(5)

foto do perfil Bot GSTI Bot GSTI

Dispara um job com um timer dentro.
Da uma olhada aqui:
http://guides.rubyonrails.org/active_job_basics.html