File tree Expand file tree Collapse file tree 7 files changed +19
-14
lines changed
Expand file tree Collapse file tree 7 files changed +19
-14
lines changed Original file line number Diff line number Diff line change @@ -5,7 +5,7 @@ def create
55 comment = Comment . new ( comment_params )
66
77 if comment . save
8- render json : { comment : comment }
8+ render json : { comment : comment . serialize }
99 else
1010 render json : { errors : comment . errors . full_messages } , status : 400
1111 end
Original file line number Diff line number Diff line change 11<template >
22 <card >
33 <div style =" display : flex ;" >
4- <img style =" border-radius : 50% ;" src =" https://media-exp1.licdn.com/dms/image/C4D03AQFDEttQjYQSbA/profile-displayphoto-shrink_200_200/0?e=1593648000&v=beta&t=V16a0Z3adcm8E22knjzE7dqvUddTkBgJj0g6-6Zstt4" height =" 48" width =" 48" />
5- <div style =" margin-left : 12px ; margin-top : 8px ;" >
6- <span style =" display : block ; font-weight : bold ; font-size : 14px ; font-family : Helvetica , sans-serif ;" >{{ comment.user_name }}</span >
7- <span style =" font-size : 12px ; color : gray ;" >54 seconds ago</span >
8- </div >
9- </div >
4+ <user-preview :user =" comment.user" :date =" comment.created_at" />
5+ </div >
106 <span class =" comment--body" >{{ comment.body }}</span >
117 </card >
128</template >
139
1410<script >
1511import Card from ' ./card' ;
12+ import UserPreview from ' ./user-preview' ;
1613
1714export default {
18- components: { Card },
15+ components: { Card, UserPreview },
1916
2017 props: {
2118 comment: { required: true , type: Object }
Original file line number Diff line number Diff line change 22 <card >
33 <a class =" snippet-preview--container" :href =" snippetUrl" >
44 <div class =" snippet-preview--author-wrapper" >
5- <user-preview :user =" snippet.user" :snippet =" snippet" />
5+ <user-preview :user =" snippet.user" :date =" snippet.created_at " />
66 <div >
77 <div style =" font-size : 14px ;" >
88 <span style =" display : inline-block ; font-family : Helvetica , sans serif ; font-weight : lighter ;" >{{ snippet.language }}</span >
Original file line number Diff line number Diff line change 22 <div >
33 <card >
44 <div class =" snippet-preview--author-wrapper" >
5- <user-preview :user =" snippet.user" :snippet =" snippet" />
5+ <user-preview :user =" snippet.user" :date =" snippet.created_at " />
66 <div >
77 <div style =" font-size : 14px ;" >
88 <span style =" display : inline-block ; font-family : Helvetica , sans serif ; font-weight : lighter ;" >{{ snippet.language }}</span >
Original file line number Diff line number Diff line change 77 <a :href =" `/users/${user.id}`" >
88 <span class =" user-preview--summary-name" >{{ user.name }}</span >
99 </a >
10- <span v-if =" snippet " class =" user-preview--summary-time-ago" >{{ snippet.created_at }}</span >
10+ <span v-if =" date " class =" user-preview--summary-time-ago" >{{ date }}</span >
1111 <span v-else class =" user-preview--summary-time-ago" >@{{ user.name }}</span >
1212 </div >
1313 </div >
1717export default {
1818 props: {
1919 user: { type: Object , required: true },
20- snippet : { type: Object , required: false }
20+ date : { type: String , required: false }
2121 }
2222}
2323 </script >
Original file line number Diff line number Diff line change @@ -4,6 +4,10 @@ class Comment < ApplicationRecord
44
55 validates_presence_of :body
66
7+ def serialize
8+ CommentSerializer . new ( self ) . to_h
9+ end
10+
711 def user_name
812 user . name
913 end
Original file line number Diff line number Diff line change 11class CommentSerializer < ActiveModel ::Serializer
2- attributes :id , :body , :created_at , :user_name
2+ include ActionView ::Helpers ::DateHelper
3+
4+ attributes :id , :body , :created_at , :user
35
4- belongs_to :user
6+ def created_at
7+ time_ago_in_words ( object . created_at ) + ' ago'
8+ end
59end
You can’t perform that action at this time.
0 commit comments