同じテーブルを参照する2つのフィールドを持つ移行を作成するにはどうすればよいですか?私はテーブルAと画像を持っています。 A.image1_idは画像を参照し、A.image2_idは画像も参照します。イメージは2つしかありませんが、多くはありません。私は同じモデルへの複数の参照を1つのテーブルに追加するにはどうすればよいですか? Ruby/Rails
class AddFields < ActiveRecord::Migration
def change
change_table(:ticket) do |t|
t.references :image1_id
t.references :image2_id
end
end
end
を使用している場合、私はそれが最後に別の_idを追加すると、おそらく「画像」モデルを使用することを知ることができませんので、それが動作するとは思いません。私も考えた
change_table(:ticket) do |t|
t.references :image
しかし、私はそれらの2つを追加するには?私はまた、
create_table :images do |t|
t.belongs_to :ticket
t.string :file
を追加することを考えました。しかし、私はわずか2、多くはないが欲しい、これがticket.image1
またはticket.image2
のように、チケットから画像を取得できるように表示されません。
この文書のhttp://apidock.com/rails/v3.2.8/ActiveRecord/ConnectionAdapters/SchemaStatements/change_tableによると、t.referencesはいずれも引数を取っていないようです。
change_table(:suppliers) do |t|
t.references :company
end
私は今、1つのリレーションを作成し、 'before_save'フィルタまたは' validate:my_validation'を使用してリレーションを2レコードに制限すると思います。 – Chloe