我是 RoR 的新手,正在尝试将 public_activity gem 与已经具有Activity
模型和activities
表的现有应用程序一起使用。
是否可以在不修改 public_activity 的整个源代码的情况下以某种方式配置或欺骗 public_activity 以使用不同的表和模型?
我在想 PublicActivity::Activity 只会指向不同的模型类?
我是 RoR 的新手,正在尝试将 public_activity gem 与已经具有Activity
模型和activities
表的现有应用程序一起使用。
是否可以在不修改 public_activity 的整个源代码的情况下以某种方式配置或欺骗 public_activity 以使用不同的表和模型?
我在想 PublicActivity::Activity 只会指向不同的模型类?
答案很简单。
假设您希望 gem 使用events
table 而不是默认的 using activities
。
按照public_activity
安装说明生成迁移后,打开它生成的迁移文件并将表名更改为:events
打开文件: db/migrate/xxxxxxxxx_create_activities.rb
并像这样修改它......
class CreateEvents < ActiveRecord::Migration
# Create table
def self.up
create_table :events do |t|
t.belongs_to :trackable, :polymorphic => true
t.belongs_to :owner, :polymorphic => true
t.string :key
t.text :parameters
t.belongs_to :recipient, :polymorphic => true
t.timestamps
end
add_index :events, [:trackable_id, :trackable_type]
add_index :events, [:owner_id, :owner_type]
add_index :events, [:recipient_id, :recipient_type]
end
# Drop table
def self.down
drop_table :events
end
end
然后运行rake db:migrate
。
然后,创建一个文件config/initializers/public_activity.rb
并添加以下行:
PublicActivity::ORM::ActiveRecord::Activity.table_name = 'events'
并继续使用public_activity
文档中描述的 gem,一切都很好。