0

レールでのモデルと移行について質問があります。

例を見てみましょう。私はメンバーモデルを持っています:

class Member < ActiveRecord::Base
    attr_accessible :a, :b
end

そして対応する移行:

class CreateMembers < ActiveRecord::Migration
    def change
        create_table :members do |t|
            t.string :a
            t.string :b
        end
    end
end

メンバーが車を持っていることに後で気付きました。そのため、車のモデルなどを作成する必要があります...今、モデルの追加belong_tohas_oneルールの両方を変更するだけでなく、新しい移行を作成して追加する必要がありますcar.integer :member_id

かなり非現実的で冗長だと思います。これを自動的に行うトリックはありますか? さらに、モデルがデータベースから完全に分離されている Symfony2 とは異なり、ここではforeign_key 列を通知する必要があります。car.member :memberの代わりにのようなものを書く方法はありますcar.integer :member_idか? 細かいところですがよろしくお願いします。

ありがとう :)

4

1 に答える 1

1

Rails はいくつかのスマート ジェネレーターを提供します。

試す:

rails g model car member:references

これにより、member_id を外部キーとして (インデックスを使用しても) 完全な移行が自動的に生成され、belongs_to :member行も既にCarクラスに追加されています。

rails g model car member:referencesこれを生成します:

class CreateCars < ActiveRecord::Migration
  def change
    create_table :cars do |t|
    t.references :member

    t.timestamps
    end
    add_index :cars, :member_id
  end
end

この:

class Car < ActiveRecord::Base
  belongs_to :member
end

したがって、あとはクラスに行has_one :carを追加するだけです。Member

ジェネレーターの詳細については、次を参照してください: Rails コマンド ラインのガイド

于 2012-08-26T19:33:10.443 に答える