Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
S
sample_app
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
1
Merge Requests
1
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Tô Ngọc Ánh
sample_app
Commits
273b2c86
Commit
273b2c86
authored
Jul 10, 2020
by
Tô Ngọc Ánh
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Add user following
parent
4f9d0a39
Pipeline
#681
failed with stages
in 0 seconds
Changes
5
Pipelines
1
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
25 additions
and
1 deletions
+25
-1
app/models/micropost.rb
+6
-0
app/models/user.rb
+1
-1
app/views/relationships/create.js.erb
+3
-0
app/views/relationships/destroy.js.erb
+3
-0
spec/models/user_spec.rb
+12
-0
No files found.
app/models/micropost.rb
View file @
273b2c86
...
@@ -3,4 +3,10 @@ class Micropost < ActiveRecord::Base
...
@@ -3,4 +3,10 @@ class Micropost < ActiveRecord::Base
default_scope
->
{
order
(
'created_at DESC'
)
}
default_scope
->
{
order
(
'created_at DESC'
)
}
validates
:content
,
presence:
true
,
length:
{
maximum:
140
}
validates
:content
,
presence:
true
,
length:
{
maximum:
140
}
validates
:user_id
,
presence:
true
validates
:user_id
,
presence:
true
def
self
.
from_users_followed_by
(
user
)
followed_user_ids
=
user
.
followed_user_ids
where
(
"user_id IN (:followed_user_ids) OR user_id = :user_id"
,
followed_user_ids:
followed_user_ids
,
user_id:
user
)
end
end
end
app/models/user.rb
View file @
273b2c86
...
@@ -23,7 +23,7 @@ class User < ActiveRecord::Base
...
@@ -23,7 +23,7 @@ class User < ActiveRecord::Base
end
end
def
feed
def
feed
Micropost
.
where
(
"user_id = ?"
,
id
)
Micropost
.
from_users_followed_by
(
self
)
end
end
def
following?
(
other_user
)
def
following?
(
other_user
)
...
...
app/views/relationships/create.js.erb
0 → 100644
View file @
273b2c86
$("#follow_form").html("
<%=
escape_javascript
(
render
(
'users/unfollow'
))
%>
")
$("#followers").html('
<%=
@user
.
followers
.
count
%>
')
\ No newline at end of file
app/views/relationships/destroy.js.erb
0 → 100644
View file @
273b2c86
$("#follow_form").html("
<%=
escape_javascript
(
render
(
'users/follow'
))
%>
")
$("#followers").html('
<%=
@user
.
followers
.
count
%>
')
\ No newline at end of file
spec/models/user_spec.rb
View file @
273b2c86
...
@@ -147,9 +147,21 @@ describe User do
...
@@ -147,9 +147,21 @@ describe User do
FactoryGirl
.
create
(
:micropost
,
user:
FactoryGirl
.
create
(
:user
))
FactoryGirl
.
create
(
:micropost
,
user:
FactoryGirl
.
create
(
:user
))
end
end
let
(
:followed_user
)
{
FactoryGirl
.
create
(
:user
)
}
before
do
@user
.
follow!
(
followed_user
)
3
.
times
{
followed_user
.
microposts
.
create!
(
content:
"Lorem ipsum"
)
}
end
its
(
:feed
)
{
should
include
(
newer_micropost
)
}
its
(
:feed
)
{
should
include
(
newer_micropost
)
}
its
(
:feed
)
{
should
include
(
older_micropost
)
}
its
(
:feed
)
{
should
include
(
older_micropost
)
}
its
(
:feed
)
{
should_not
include
(
unfollowed_post
)
}
its
(
:feed
)
{
should_not
include
(
unfollowed_post
)
}
its
(
:feed
)
do
followed_user
.
microposts
.
each
do
|
micropost
|
should
include
(
micropost
)
end
end
end
end
end
end
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment