[ruby-on-rails] 참조를 다형성으로 만들기 위해 마이그레이션을 생성하는 방법

Products 테이블이 있고 열을 추가하고 싶습니다.

t.references :imageable, :polymorphic => true

다음을 수행하여 마이그레이션을 생성하려고했습니다.

$ rails generate migration AddImageableToProducts imageable:references:polymorphic

하지만 분명히 잘못하고 있습니다. 누구든지 제안 할 수 있습니까? 감사

마이그레이션을 생성 한 후 수동으로 넣으려고 할 때 다음과 같이했습니다.

class AddImageableToProducts < ActiveRecord::Migration
  def self.up
    add_column :products, :imageable, :references, :polymorphic => true
  end

  def self.down
    remove_column :products, :imageable
  end
end

그리고 그것은 여전히 ​​작동하지 않았습니다



답변

내가 아는 한 다형성 연관을위한 내장 생성기는 없습니다. 빈 마이그레이션을 생성 한 다음 필요에 따라 직접 수정합니다.

업데이트 : 변경할 테이블을 지정해야합니다. 이 SO 대답 에 따르면 :

class AddImageableToProducts < ActiveRecord::Migration
  def up
    change_table :products do |t|
      t.references :imageable, polymorphic: true
    end
  end

  def down
    change_table :products do |t|
      t.remove_references :imageable, polymorphic: true
    end
  end
end


답변

당신이하려는 것은 아직 안정된 버전의 레일에서 구현되지 않았기 때문에 Michelle의 대답이 현재로서는 옳습니다. 그러나이 기능은 레일 4에서 구현 될 것이며 이미 다음과 같이 에지 버전에서 사용할 수 있습니다 (이 CHANGELOG 에 따라 ).

$ rails generate migration AddImageableToProducts imageable:references{polymorphic}


답변

다음을 수행 할 수도 있습니다.

class AddImageableToProducts < ActiveRecord::Migration
  def change
    add_reference :products, :imageable, polymorphic: true, index: true
  end
end


답변

당신은 시도 할 수 있습니다 rails generate migration AddImageableToProducts imageable:references{polymorphic}


답변