Новини / Релізи
- DHH анонсував Active Storage – gem для зберігання файлів в Rails застосунках
Один файл:
class User < ApplicationRecord
has_one_attached :avatar
end
user.avatar.attach io: File.open("~/face.jpg"), filename: "avatar.jpg", content_type: "image/jpg"
user.avatar.exist? # => true
user.avatar.purge
user.avatar.exist? # => false
user.avatar.url(expires_in: 5.minutes) # => /rails/blobs/<encoded-key>
class AvatarsController < ApplicationController
def update
Current.user.avatar.attach(params.require(:avatar))
redirect_to Current.user
end
end
Декілька файлів:
class Message < ApplicationRecord
has_many_attached :images
end
<%= form_with model: @message do |form| %>
<%= form.text_field :title, placeholder: "Title" %><br>
<%= form.text_area :content %><br><br>
<%= form.file_field :images, multiple: true %><br>
<%= form.submit %>
<% end %>
class MessagesController < ApplicationController
def create
message = Message.create! params.require(:message).permit(:title, :content)
message.images.attach(params[:message][:images])
redirect_to message
end
end
Відео
-
Оновлення гему без [обов'язкового] оновлення всіх його залежностей
Статті
DHH не залишився в стороні:
-
Два тести, які ви повинні запустити для вашого проекту на Ruby
-
Чи гарна ідея завжди розділяти довгі методи на менші? Експеримент
Інструменти
- LLRB – JIT-компілятор для Ruby на основі LLVM
________ _________ ______________
| | | | | |
| CRuby | | CRuby | | CRuby |
| C code |-->| LLVM IR |-->| LLVM bitcode |
|________| |_________| |______________|
Real World Rails Background Jobs – набір прикладів фонових задач з реальних додатків
Генерація PDF:
class PdfGenerationJob < ActiveJob::Base
queue_as :pdf_generation
def perform(claim)
Rails.logger.info "Starting PdfGenerationJob"
claim.generate_pdf!
Rails.logger.info "Finished PdfGenerationJob"
end
end
Підписка на поштову розсилку:
class UserSubscribeJob < ApplicationJob
queue_as :default
def perform(name, email)
MailChimpService.user_subscribe(name, email)
end
end
Ще немає коментарів