Если вы хотите прикрепить изображение по умолчанию к сообщению, если оно отсутствует, вы можете сделать это в обратном вызове
# 1. Save a default image in Rails.root.join("app", "assets", "images", "default.jpeg")
# 2. In post.rb
after_commit :add_default_cover, on: [:create, :update]
private def add_default_cover
unless cover.attached?
self.cover.attach(io: File.open(Rails.root.join("app", "assets", "images", "default.jpeg")), filename: 'default.jpg' , content_type: "image/jpg")
end
end
# 3. And in your view
<%= image_tag(@post.cover, class: 'card-img-top img-fluid') %>
Или, если вы не хотите прикреплять обложку по умолчанию к публикациино все же хочу показать изображение на странице шоу поста
# 1. Save a default image in Rails.root.join("app", "assets", "images", "default.jpeg")
# 2. In post.rb
def cover_attachment_path
cover.attached? ? cover : 'default.jpeg'
end
# 3. And in your view
<%= image_tag(@post.cover_attachment_path, class: 'card-img-top img-fluid') %>