[Rails] ActiveStorage를 사용하여 게시물에 아바타 표시
5162 단어 ActiveStorage루비Railsdevise
하고 싶은 일
Posts#index(이하 타임라인)에 아바타와 사용자 이름을 표시하고 싶습니다.
전제
devise 도입
ActiveStorage 도입
아바타를 사용자 모델에 추가
방법
posts 모델에 :avatar
의 has_one_attached
와 user 인스턴스 메소드 추가
post.rbclass Post < ApplicationRecord
validates :content, {presence: true, length: {maximum: 140}}
validates :user_id, {presence: true}
has_one_attached :avatar
def user
return User.find_by(id: self.user_id)
end
end
view에 .user 추가
index.html.erb <% @posts.each do |post| %>
<div class="posts-index-item mb-20">
<div class="posts-index-user">
<!--avatar-->
<div class="posts-index-img d-inline">
<% if post.user.avatar.attached? %>
<%= image_tag post.user.avatar, class: "avatar-index rounded-circle mx-auto" %>
<% else %>
<img class="avatar-index rounded-circle mx-auto" src="<%= "/images/default_user.png" %>" alt="Userimage">
<% end %>
</div>
<!--username-->
<div class="posts-index-username d-inline">
<%= link_to post.user.username, users_show_path %>
</div>
</div>
<!--content-->
<%= link_to(post.content, "/posts/#{post.id}") %>
</div>
<% end %>
결과
요약
user 메소드에 의해 params의 사용할 수 없는 posts#index에서도 User 모델을 취급할 수 있다.
⇒ post.user.avatar
Reference
이 문제에 관하여([Rails] ActiveStorage를 사용하여 게시물에 아바타 표시), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/yamatoooki/items/a8a7ac52939b248410f1
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
devise 도입
ActiveStorage 도입
아바타를 사용자 모델에 추가
방법
posts 모델에 :avatar
의 has_one_attached
와 user 인스턴스 메소드 추가
post.rbclass Post < ApplicationRecord
validates :content, {presence: true, length: {maximum: 140}}
validates :user_id, {presence: true}
has_one_attached :avatar
def user
return User.find_by(id: self.user_id)
end
end
view에 .user 추가
index.html.erb <% @posts.each do |post| %>
<div class="posts-index-item mb-20">
<div class="posts-index-user">
<!--avatar-->
<div class="posts-index-img d-inline">
<% if post.user.avatar.attached? %>
<%= image_tag post.user.avatar, class: "avatar-index rounded-circle mx-auto" %>
<% else %>
<img class="avatar-index rounded-circle mx-auto" src="<%= "/images/default_user.png" %>" alt="Userimage">
<% end %>
</div>
<!--username-->
<div class="posts-index-username d-inline">
<%= link_to post.user.username, users_show_path %>
</div>
</div>
<!--content-->
<%= link_to(post.content, "/posts/#{post.id}") %>
</div>
<% end %>
결과
요약
user 메소드에 의해 params의 사용할 수 없는 posts#index에서도 User 모델을 취급할 수 있다.
⇒ post.user.avatar
Reference
이 문제에 관하여([Rails] ActiveStorage를 사용하여 게시물에 아바타 표시), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/yamatoooki/items/a8a7ac52939b248410f1
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
class Post < ApplicationRecord
validates :content, {presence: true, length: {maximum: 140}}
validates :user_id, {presence: true}
has_one_attached :avatar
def user
return User.find_by(id: self.user_id)
end
end
<% @posts.each do |post| %>
<div class="posts-index-item mb-20">
<div class="posts-index-user">
<!--avatar-->
<div class="posts-index-img d-inline">
<% if post.user.avatar.attached? %>
<%= image_tag post.user.avatar, class: "avatar-index rounded-circle mx-auto" %>
<% else %>
<img class="avatar-index rounded-circle mx-auto" src="<%= "/images/default_user.png" %>" alt="Userimage">
<% end %>
</div>
<!--username-->
<div class="posts-index-username d-inline">
<%= link_to post.user.username, users_show_path %>
</div>
</div>
<!--content-->
<%= link_to(post.content, "/posts/#{post.id}") %>
</div>
<% end %>
요약
user 메소드에 의해 params의 사용할 수 없는 posts#index에서도 User 모델을 취급할 수 있다.
⇒ post.user.avatar
Reference
이 문제에 관하여([Rails] ActiveStorage를 사용하여 게시물에 아바타 표시), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/yamatoooki/items/a8a7ac52939b248410f1
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여([Rails] ActiveStorage를 사용하여 게시물에 아바타 표시), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/yamatoooki/items/a8a7ac52939b248410f1텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)