Habtm関係を介してリンクされた 2 つのモデルを含むプロジェクトがあり、デフォルトの関係値が固定されており、Web アプリケーションが機能するために必要であるため、それらの値をシードしたいと考えています。
テーブルがモデルにリンクされていないため、モデル結合テーブルにアクセスし、デフォルト値を object1_id、object2_id にシードする方法を見つけることができないようです。現在、postgreSQL で SQL を介して直接実行されています。
助言がありますか?
Habtm関係を介してリンクされた 2 つのモデルを含むプロジェクトがあり、デフォルトの関係値が固定されており、Web アプリケーションが機能するために必要であるため、それらの値をシードしたいと考えています。
テーブルがモデルにリンクされていないため、モデル結合テーブルにアクセスし、デフォルト値を object1_id、object2_id にシードする方法を見つけることができないようです。現在、postgreSQL で SQL を介して直接実行されています。
助言がありますか?
まだ結合テーブルを生成していない場合は、結合テーブルを生成する必要があります。
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")