@@ -17,7 +17,7 @@ class Network < ActiveRecord::Base
17
17
profile_url : { type : 'string' , index : 'not_analyzed' } ,
18
18
} } } }
19
19
20
- attr_taggable :tags
20
+ acts_as_taggable_on :tags
21
21
acts_as_followable
22
22
attr_accessor :resident_expert
23
23
has_many :network_experts , autosave : true , dependent : :destroy
@@ -61,7 +61,7 @@ def top_tags_not_networks
61
61
end
62
62
63
63
def top_tags_not_in_any_networks
64
- top_tags . where ( 'tags.name NOT IN (?)' , Network . all . map ( &:tags ) . flatten )
64
+ top_tags . where ( 'tags.name NOT IN (?)' , Network . all . map ( &:tag_list ) . flatten )
65
65
end
66
66
67
67
def top_tags
@@ -82,21 +82,17 @@ def create_slug!
82
82
end
83
83
84
84
def tag_with_name!
85
- unless self . tags . include? self . name
86
- self . tags = ( self . tags + [ self . name , self . slug ] )
85
+ unless self . tag_list . include? self . name
86
+ self . tag_list = ( self . tag_list + [ self . name , self . slug ] )
87
87
end
88
88
end
89
89
90
90
def correct_tags
91
- if self . tags_changed ?
92
- self . tags = self . tags . uniq . select { |tag | Tag . exists? ( name : tag ) } . reject { |tag | ( tag != self . name ) && Network . exists? ( name : tag ) }
91
+ if self . tag_list_changed ?
92
+ self . tags_list = self . tag_list . uniq . select { |tag | Tag . exists? ( name : tag ) } . reject { |tag | ( tag != self . name ) && Network . exists? ( name : tag ) }
93
93
end
94
94
end
95
95
96
- def tags_changed?
97
- self . tags_tags . map ( &:name ) != self . tags
98
- end
99
-
100
96
def protips_tags_with_count
101
97
self . protips . joins ( "inner join taggings on taggings.taggable_id = protips.id" ) . joins ( 'inner join tags on taggings.tag_id = tags.id' ) . where ( "taggings.taggable_type = 'Protip' AND taggings.context = 'topics'" ) . select ( 'tags.name, count(tags.name)' ) . group ( 'tags.name' ) . order ( 'count(tags.name) DESC' )
102
98
end
@@ -117,7 +113,7 @@ def assign_mayor!
117
113
118
114
candidate = self . in_line_to_the_throne . first
119
115
unless candidate . nil?
120
- Rails . logger . debug "finding a mayor among: #{ self . tags } " if ENV [ 'DEBUG' ]
116
+ Rails . logger . debug "finding a mayor among: #{ self . tag_list } " if ENV [ 'DEBUG' ]
121
117
person_with_most_upvoted_protips_on_topic = User . find ( candidate . user_id )
122
118
Rails . logger . debug "mayor for #{ name } found: #{ person_with_most_upvoted_protips_on_topic . username } " if ENV [ 'DEBUG' ]
123
119
@@ -163,41 +159,41 @@ def to_public_hash
163
159
end
164
160
165
161
def protips
166
- @protips ||= Protip . tagged_with ( self . tags , on : :topics )
162
+ @protips ||= Protip . tagged_with ( self . tag_list , on : :topics )
167
163
end
168
164
169
165
def upvotes
170
166
self . protips . joins ( "inner join likes on likes.likable_id = protips.id" ) . where ( "likes.likable_type = 'Protip'" ) . select ( 'count(*)' ) . count
171
167
end
172
168
173
169
def most_upvoted_protips ( limit = nil , offset = 0 )
174
- Protip . search_trending_by_topic_tags ( "sort:upvotes desc" , self . tags , offset , limit )
170
+ Protip . search_trending_by_topic_tags ( "sort:upvotes desc" , self . tag_list , offset , limit )
175
171
end
176
172
177
173
def new_protips ( limit = nil , offset = 0 )
178
- Protip . search ( "sort:created_at desc" , self . tags , page : offset , per_page : limit )
174
+ Protip . search ( "sort:created_at desc" , self . tag_list , page : offset , per_page : limit )
179
175
end
180
176
181
177
def featured_protips ( limit = nil , offset = 0 )
182
178
#self.protips.where(:featured => true)
183
- Protip . search ( "featured:true" , self . tags , page : offset , per_page : limit )
179
+ Protip . search ( "featured:true" , self . tag_list , page : offset , per_page : limit )
184
180
185
181
end
186
182
187
183
def flagged_protips ( limit = nil , offset = 0 )
188
- Protip . search ( "flagged:true" , self . tags , page : offset , per_page : limit )
184
+ Protip . search ( "flagged:true" , self . tag_list , page : offset , per_page : limit )
189
185
end
190
186
191
187
def highest_scored_protips ( limit = nil , offset = 0 , field = :trending_score )
192
- Protip . search ( "sort:#{ field } desc" , self . tags , page : offset , per_page : limit )
188
+ Protip . search ( "sort:#{ field } desc" , self . tag_list , page : offset , per_page : limit )
193
189
end
194
190
195
191
def mayor_protips ( limit = nil , offset = 0 )
196
- Protip . search_trending_by_user ( self . mayor . username , nil , self . tags , offset , limit )
192
+ Protip . search_trending_by_user ( self . mayor . username , nil , self . tag_list , offset , limit )
197
193
end
198
194
199
195
def expert_protips ( limit = nil , offset = 0 )
200
- Protip . search_trending_by_user ( self . resident_expert . username , nil , self . tags , offset , limit )
196
+ Protip . search_trending_by_user ( self . resident_expert . username , nil , self . tag_list , offset , limit )
201
197
end
202
198
203
199
def members ( limit = -1 , offset = 0 )
@@ -226,7 +222,7 @@ def resident_expert_from_env
226
222
end
227
223
228
224
def assign_members
229
- Skill . where ( name : self . tags ) . select ( 'DISTINCT(user_id)' ) . map ( &:user ) . each do |member |
225
+ Skill . where ( name : self . tag_list ) . select ( 'DISTINCT(user_id)' ) . map ( &:user ) . each do |member |
230
226
member . join ( self )
231
227
end
232
228
end
0 commit comments