0

今の私の移行:

class CreateActivities < ActiveRecord::Migration
  def self.up
    create_table :activities do |t|
      t.integer :account_id, :null => false
      t.integer :target_id, :null => false
      t.string  :target_type, :null => false
      t.string  :event_type, :null => false
      t.integer :employee_id
      t.string  :name
      t.timestamps
    end

    add_index :activities, [:target_id, :target_type]

これで、次のようにターゲットを呼び出すことができます:

Activity.first.target

そして、target_type に基づいて target_id が表示されます。

ターゲットを選択し、関連するアクティビティがある場合、それらが表示されるようにするにはどうすればよいでしょうか?

そのようです :

Job.find(1234).activities
# Where Job.find(1234) is the target_id of many activities.
4

1 に答える 1

1

私が正しく理解していれば、これでうまくいくはずです。

class Job < ActiveRecord::Base
  has_many :activities, :conditions => ['target_type = ?', 'Job'], :as => :target
end
于 2012-05-22T19:14:37.533 に答える