diff --git a/app/models/forge_message.rb b/app/models/forge_message.rb index 1543fab58..3f83383e9 100644 --- a/app/models/forge_message.rb +++ b/app/models/forge_message.rb @@ -13,8 +13,24 @@ class ForgeMessage < ActiveRecord::Base belongs_to :forge_message ,:polymorphic => true belongs_to :project belongs_to :user + has_many :message_alls, :class_name => 'MessageAll',:as =>:message validates :user_id,presence: true validates :project_id,presence: true validates :forge_message_id,presence: true validates :forge_message_type, presence: true + after_save :add_user_activity + + def add_user_activity + message_all = MessageAll.where("message_type = '#{self.class.to_s}' and message_id = '#{self.id}'").first + if message_all + message_all.save + else + message_all = MessageAll.new + message_all.message_id = self.id + message_all.message_type = self.class.to_s + message_all.container_type = "Project" + message_all.container_id = self.project_id + message_all.save + end + end end diff --git a/app/models/message_all.rb b/app/models/message_all.rb new file mode 100644 index 000000000..28982d004 --- /dev/null +++ b/app/models/message_all.rb @@ -0,0 +1,7 @@ +class MessageAll < ActiveRecord::Base + attr_accessible :container_id, :container_type, :message_id, :message_type + # 虚拟关联---项目消息表/课程消息表/用户留言消息表/贴吧消息表 + belongs_to :message ,:polymorphic => true + # 虚拟关联---项目/课程 + belongs_to :container ,:polymorphic => true +end diff --git a/app/views/users/user_messages.html.erb b/app/views/users/user_messages.html.erb index 5ca43fbdc..e8bfac941 100644 --- a/app/views/users/user_messages.html.erb +++ b/app/views/users/user_messages.html.erb @@ -29,7 +29,7 @@ - <% if params[:type] == nil? %> + <% if params[:type].nil? %>
有 8 封未读全部设为已读
@@ -219,7 +219,7 @@
  • <%=link_to urm.memo.author, user_path(urm.memo.author), :class => "newsBlue" %>
  • -
  • 新建贴吧帖子
  • +
  • <%= urm.memo.parent_id.nil? ? "新建贴吧帖子" : "回复贴吧帖子" %>
  • <%= link_to urm.memo.content.html_safe, forum_memo_path(urm.memo.forum_id, urm.memo.parent_id ? urm.memo.parent_id: urm.memo.id),:class => "newsGrey" , :title => "#{urm.memo.content.html_safe}" %>
  • @@ -241,7 +241,7 @@
  • <%= ufm.journals_for_message.reply_id == 0 ? "给你留言了" : "回复了你的留言" %>
  • - <%= link_to ufm.journals_for_message.notes.html_safe, feedback_path(ufm.journals_for_message.jour_id), :class => "newsGrey", :title => "#{ufm.journals_for_message.notes.html_safe}" %> + <%= link_to ufm.journals_for_message.notes.html_safe, feedback_path(ufm.journals_for_message.jour_id), :class => "newsGrey", :title => "#{ufm.journals_for_message.notes}".html_safe %>
  • <%= time_tag(ufm.journals_for_message.created_on).html_safe %>
  • diff --git a/db/migrate/20150824092300_create_message_alls.rb b/db/migrate/20150824092300_create_message_alls.rb new file mode 100644 index 000000000..0a1d51a78 --- /dev/null +++ b/db/migrate/20150824092300_create_message_alls.rb @@ -0,0 +1,12 @@ +class CreateMessageAlls < ActiveRecord::Migration + def change + create_table :message_alls do |t| + t.string :message_type + t.integer :message_id + t.string :container_type + t.integer :container_id + + t.timestamps + end + end +end diff --git a/spec/factories/message_alls.rb b/spec/factories/message_alls.rb new file mode 100644 index 000000000..4805f0de3 --- /dev/null +++ b/spec/factories/message_alls.rb @@ -0,0 +1,9 @@ +FactoryGirl.define do + factory :message_all do + message_type "MyString" +message_id 1 +container_type "MyString" +container_id 1 + end + +end diff --git a/spec/models/message_all_spec.rb b/spec/models/message_all_spec.rb new file mode 100644 index 000000000..33ac896e2 --- /dev/null +++ b/spec/models/message_all_spec.rb @@ -0,0 +1,5 @@ +require 'rails_helper' + +RSpec.describe MessageAll, :type => :model do + pending "add some examples to (or delete) #{__FILE__}" +end