我是RoR的新手,我正在尝试将public_activity gem用于已有Activity
模型和activities
表的现有应用程序。
是否有可能以某种方式配置或欺骗public_activity以使用不同的表&模型没有修改public_activity的整个源代码?
我在想PublicActivity :: Activity只指向不同的模型类?
答案 0 :(得分:4)
答案很简单。
假设您希望gem使用events
表而不是默认使用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并且所有内容都很好。