2012-03-07 11 views
0

これは私の初めてのhas_and_belongs_to_manyアソシエーションの作成であり、協調的ではありません。作成するhas_and_belongs_to_manyアソシエーションを取得できません

私のモデルは、私は、サーバーオブジェクトを介してサービスを作成しようとしている

class Server < ActiveRecord::Base 
    has_and_belongs_to_many :services 

class Service < ActiveRecord::Base 
    has_and_belongs_to_many :services 

です。

サーバオブジェクトをserver = Server.find_by_name(server_name)で取得しましたが、うまく動作します。私もそのエラーのための情報の方法で多くを発見していない

ActiveRecord::HasAndBelongsToManyAssociationForeignKeyNeeded: Cannot create self referential has_and_belongs_to_many association on 'Service#services'. :association_foreign_key cannot be the same as the :foreign_key. 

:私はどちらかservice = server.services.newまたはserver.services.create(params)私は、次のActiveRecordのエラーを取得することで、サービスオブジェクトを作成しよう。私は間違って何をしていますか?

答えて

2

シンプルエラー:

は、あなたのサービスクラスでhas_and_belongs_to_many :serversであるべき。最初

+0

gah、タイプミスのトラブルシューティングに感謝します。 – Eugene

0

は、私はあなたがいないサービス

それは

class Service < ActiveRecord::Base 
    has_and_belongs_to_many :servers 

多対多の関連付けインレール、私は示唆している設定には2つの方法がありますでなければならないのサーバーに意味があるタイプミスがあると思いますhas_many:throughを使うのはhas_and_belongs_to_manyが非常に限られているからです。

Ryanはこのトピックについて素晴らしいRailscastsを作成しました。これは非常に役に立ちます! http://railscasts.com/episodes/47-two-many-to-many

関連する問題