0

Habtm関係を介してリンクされた 2 つのモデルを含むプロジェクトがあり、デフォルトの関係値が固定されており、Web アプリケーションが機能するために必要であるため、それらの値をシードしたいと考えています。

テーブルがモデルにリンクされていないため、モデル結合テーブルにアクセスし、デフォルト値を object1_id、object2_id にシードする方法を見つけることができないようです。現在、postgreSQL で SQL を介して直接実行されています。

助言がありますか?

4

2 に答える 2

3

まだ結合テーブルを生成していない場合は、結合テーブルを生成する必要があります。

rails g migration CreateJoinTable users roles

そして、それぞれのクラスに habtm がある限り:

# app/models/user.rb
class User < ActiveRecord::Base
  has_and_belongs_to_many :roles
end

作成しているオブジェクトを連想配列にプッシュするだけです。

# db/seeds.rb
bill = User.create(name: "bill")

bill.roles << Role.create(title: "admin")
于 2016-01-24T03:58:37.377 に答える