RoR は初めてで、Activity
モデルとactivities
テーブルが既にある既存のアプリケーションで public_activity gem を使用しようとしています。
public_activity のソース コード全体を変更せずに、public_activity を何らかの方法で構成またはトリックして、別のテーブルとモデルを使用することは可能ですか?
PublicActivity::Activity は別のモデル クラスを指すだけだと思っていましたか?
RoR は初めてで、Activity
モデルとactivities
テーブルが既にある既存のアプリケーションで public_activity gem を使用しようとしています。
public_activity のソース コード全体を変更せずに、public_activity を何らかの方法で構成またはトリックして、別のテーブルとモデルを使用することは可能ですか?
PublicActivity::Activity は別のモデル クラスを指すだけだと思っていましたか?
答えは簡単です。
events
デフォルトの using ではなく、テーブルを使用するように gem を設定するとし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の利用を進めれば、すべてうまくいきます。