1

私は従来のRails 3アプリケーションを持っています。私はVolunteerCircleとUserという2つのモデルの間に単純なHABTM関係を設定しようとしています。私は他の2つのモデルでこの同じ関連性を持っています。次のようにRails 3 HABTMはActiveRecord :: Associations :: CollectionProxyオブジェクトを生成します

団体は以下のとおりです。

VolunteerCircleモデル:

class VolunteerCircle < ActiveRecord::Base 
    #... 

    has_and_belongs_to_many :users 

    # ... 
end 

Userモデル:

class User < ActiveRecord::Base 
    #... 

    has_and_belongs_to_many :volunteer_circles 

    #... 
end 

そして、ここでは、移行です:

class CreateVolunteerCirclesUsers < ActiveRecord::Migration 
    def change 
    create_table :volunteer_circles_users, id: false do |t| 
     t.belongs_to :volunteer_circle, index: true 
     t.belongs_to :user, index: true 
    end 
    end 
end 

私が呼ぶとき#users on VolunteerCircleオブジェクト(またはその逆)の場合、RailsはActiveRecord :: Associations :: CollectionProxyオブジェクトを呼び出します。

volunteer_circles_usersテーブルがデータベース内で私の右に見えます。私はここで何が欠けていますか?

また、私はHABTMTの優位性を認識しています。私のコントロールを超えた状況でHABTMがここに指示されます。

ありがとうございました!

答えて

0

ここでエラーを見つけようと苦労して..しかし、おそらくこれらのいくつかがお手伝いします:

私はあなたが複数フィールドインデックス不足していると思う:

add_index : volunteer_circles_users, [:volunteer_circles_id, :user_id] 
add_index : volunteer_circles_users, [:user_id, :volunteer_circles_id] 

をそしてcreate_join_tableが作成されますアルファベット順に表示されるので、代わりにuser_volunteer_circlesとなります。だから、多分あなたはのような何かをする必要がある可能性があり:

class VolunteerCircle < ActiveRecord::Base 
    has_and_belongs_to_many :users, :join_table => : volunteer_circles_users 
end 

はあなたがアルファベット順についてのノートでそれを釘付け

+0

...それがお役に立てば幸いです。情報のおかげで! – cmhobbs

関連する問題