parent
78e552ddee
commit
b9b7f6fa9e
@ -0,0 +1,34 @@
|
|||||||
|
class PrincipalActivity < ActiveRecord::Base
|
||||||
|
attr_accessible :principal_act_id, :principal_act_type, :principal_id, :user_id
|
||||||
|
#虚拟关联
|
||||||
|
belongs_to :principal_act ,:polymorphic => true
|
||||||
|
belongs_to :user
|
||||||
|
validates :user_id,presence: true
|
||||||
|
validates :principal_id,presence: true
|
||||||
|
validates :principal_act_id,presence: true
|
||||||
|
validates :principal_act_type, presence: true
|
||||||
|
has_many :user_acts, :class_name => 'UserAcivity',:as =>:act
|
||||||
|
after_save :add_user_activity
|
||||||
|
before_destroy :destroy_user_activity
|
||||||
|
|
||||||
|
#在个人动态里面增加当前动态
|
||||||
|
def add_user_activity
|
||||||
|
user_activity = UserActivity.where("act_type = '#{self.principal_act_type.to_s}' and act_id = '#{self.principal_act_id}'").first
|
||||||
|
if user_activity
|
||||||
|
user_activity.save
|
||||||
|
else
|
||||||
|
user_activity = UserActivity.new
|
||||||
|
user_activity.act_id = self.principal_act_id
|
||||||
|
user_activity.act_type = self.principal_act_type
|
||||||
|
user_activity.container_type = "Principal"
|
||||||
|
user_activity.container_id = self.principal_id
|
||||||
|
user_activity.user_id = self.user_id
|
||||||
|
user_activity.save
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def destroy_user_activity
|
||||||
|
user_activity = UserActivity.where("act_type = '#{self.forge_act_type.to_s}' and act_id = '#{self.forge_act_id}'")
|
||||||
|
user_activity.destroy_all
|
||||||
|
end
|
||||||
|
end
|
@ -0,0 +1,12 @@
|
|||||||
|
class CreatePrincipalActivities < ActiveRecord::Migration
|
||||||
|
def change
|
||||||
|
create_table :principal_activities do |t|
|
||||||
|
t.integer :user_id
|
||||||
|
t.integer :principal_id
|
||||||
|
t.integer :principal_act_id
|
||||||
|
t.string :principal_act_type
|
||||||
|
|
||||||
|
t.timestamps
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
@ -0,0 +1,10 @@
|
|||||||
|
# Read about factories at https://github.com/thoughtbot/factory_girl
|
||||||
|
|
||||||
|
FactoryGirl.define do
|
||||||
|
factory :principal_activity do
|
||||||
|
user_id 1
|
||||||
|
principal_id 1
|
||||||
|
principal_act_id 1
|
||||||
|
principal_act_type "MyString"
|
||||||
|
end
|
||||||
|
end
|
@ -0,0 +1,5 @@
|
|||||||
|
require 'rails_helper'
|
||||||
|
|
||||||
|
RSpec.describe PrincipalActivity, :type => :model do
|
||||||
|
pending "add some examples to (or delete) #{__FILE__}"
|
||||||
|
end
|
Loading…
Reference in new issue