adds counter cache for user's notifications
This commit is contained in:
@@ -1,5 +1,5 @@
|
|||||||
class Notification < ActiveRecord::Base
|
class Notification < ActiveRecord::Base
|
||||||
belongs_to :user
|
belongs_to :user, counter_cache: true
|
||||||
belongs_to :notifiable, polymorphic: true
|
belongs_to :notifiable, polymorphic: true
|
||||||
|
|
||||||
scope :unread, -> { all }
|
scope :unread, -> { all }
|
||||||
|
|||||||
@@ -2,9 +2,9 @@
|
|||||||
<% if user_signed_in? %>
|
<% if user_signed_in? %>
|
||||||
<li>
|
<li>
|
||||||
<%= link_to notifications_path, class: "notifications" do %>
|
<%= link_to notifications_path, class: "notifications" do %>
|
||||||
<% if current_user.notifications.count > 0 %>
|
<% if current_user.notifications_count > 0 %>
|
||||||
<i class="icon-circle"></i>
|
<i class="icon-circle"></i>
|
||||||
<i class="icon-notification" title="<%= t('layouts.header.new_notifications', count: current_user.notifications.count).html_safe %>">
|
<i class="icon-notification" title="<%= t('layouts.header.new_notifications', count: current_user.notifications_count).html_safe %>">
|
||||||
</i>
|
</i>
|
||||||
<% else %>
|
<% else %>
|
||||||
<i class="icon-no-notification" title="<%= t('layouts.header.no_notifications') %>"></i>
|
<i class="icon-no-notification" title="<%= t('layouts.header.no_notifications') %>"></i>
|
||||||
|
|||||||
@@ -0,0 +1,5 @@
|
|||||||
|
class AddNotificationsCounterCacheToUser < ActiveRecord::Migration
|
||||||
|
def change
|
||||||
|
add_column :users, :notifications_count, :integer, default: 0
|
||||||
|
end
|
||||||
|
end
|
||||||
@@ -11,7 +11,7 @@
|
|||||||
#
|
#
|
||||||
# It's strongly recommended that you check this file into your version control system.
|
# It's strongly recommended that you check this file into your version control system.
|
||||||
|
|
||||||
ActiveRecord::Schema.define(version: 20160108114750) do
|
ActiveRecord::Schema.define(version: 20160108133501) do
|
||||||
|
|
||||||
# These are extensions that must be enabled in order to support this database
|
# These are extensions that must be enabled in order to support this database
|
||||||
enable_extension "plpgsql"
|
enable_extension "plpgsql"
|
||||||
@@ -339,6 +339,7 @@ ActiveRecord::Schema.define(version: 20160108114750) do
|
|||||||
t.datetime "erased_at"
|
t.datetime "erased_at"
|
||||||
t.boolean "public_activity", default: true
|
t.boolean "public_activity", default: true
|
||||||
t.boolean "newsletter", default: false
|
t.boolean "newsletter", default: false
|
||||||
|
t.integer "notifications_count", default: 0
|
||||||
end
|
end
|
||||||
|
|
||||||
add_index "users", ["confirmation_token"], name: "index_users_on_confirmation_token", unique: true, using: :btree
|
add_index "users", ["confirmation_token"], name: "index_users_on_confirmation_token", unique: true, using: :btree
|
||||||
|
|||||||
Reference in New Issue
Block a user