Как получить rails_blob_url для аватара, прикрепленного к пользовательской модели из Userspublication? - PullRequest
0 голосов
/ 12 мая 2019
class User < ApplicationRecord
  has_many :userspublications
  has_one_attached :avatar
end
class Userspublication < ApplicationRecord
  belongs_to :user
  has_one_attached :post
end

Как получить доступ к аватару (rails_blob_url) из Userspublication У меня есть следующий запрос?

Это то, что я пробовал

Userspublication.joins(:user)
.joins("LEFT OUTER JOIN followers ON followers.user_id=users.id 
        Left Outer join active_storage_attachments 
        ON active_storage_attachments.record_id = users.id 
        AND active_storage_attachments.record_type = 'User' 
        AND active_storage_attachments.name = 'avatar'
        where followers.followeduser_id = 3 or users.id = 3").select("users.first_name,users.last_name,active_storage_attachments.record_type as 'avatar',userspublications.*").order(updated_at: :desc)

Ответы [ 2 ]

0 голосов
/ 13 мая 2019

Спасибо за помощь, ребята (особенно @arieljuod). Я понял, что ответ был довольно прост:

return rails_blob_path(object.user.avatar, only_path: true)

Здесь объект публикации пользователя!

(Парень, который внизпроголосовал за этот вопрос, если вы не можете ответить и даже не можете помочь понять, что с ним не так "сосать" !!)

0 голосов
/ 13 мая 2019

Вы можете получить поле blob_id из таблицы active_storage_attachments, а затем использовать его для получения BLOB-объекта с blob = ActiveStorage::Blob.find(blob_id).И тогда вы можете позвонить url_for(blob).

...