3

RoR は初めてで、Activityモデルとactivitiesテーブルが既にある既存のアプリケーションで public_activity gem を使用しようとしています。

public_activity のソース コード全体を変更せずに、public_activity を何らかの方法で構成またはトリックして、別のテーブルとモデルを使用することは可能ですか?

PublicActivity::Activity は別のモデル クラスを指すだけだと思っていましたか?

4

1 に答える 1

4

答えは簡単です。

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の利用を進めれば、すべてうまくいきます。

GitHub の問題でこのソリューションを支援してくれた public_activity の開発者に特に感謝します。

于 2013-03-19T14:50:12.393 に答える