2016-09-09 13 views
0

を削除しないネストされました。私が直面している問題は、新しいcompanies_peopleオブジェクトを作成できますが、既存のオブジェクトを更新または削除できないということです。 :id:_destroy paramsは許可されていないか、または紛失していないという別の質問ではありません。私は確かに設定していますが、それでも既存の関連付けは更新も削除もできません。レールは、属性の作成が、更新していないと私はモデルを次のようしている

例: 21からcompany_role_idを更新する目的を持ってこの呼び出しは完全に無視されている:

Company.first.update_attributes(companies_people_attributes: [{id: 1, person_id: 1, company_role_id: 2}]) 

PS。 Railsの4.2.4

+0

問題が既に解決されている場合は、なぜ質問するのですか? –

+0

@Deepak、私の経験を共有して、人生の何時間かを節約することができます。それに問題はありますか? – trushkevich

答えて

0

でテスト原因このアソシエーションの宣言に起こると思われた:

has_and_belongs_to_many :people 

私はこの関係が最初にHABTMのように定義持っていたが、多くの場合、私はへのアクセスを取得するために必要なたまたま後でとしてテーブルを結合し、対応するモデルCompaniesPersonを作成しましたが、has_many throughを介して作業する:peopleの関連付けを更新しませんでした。そして今、私は完全に

has_many :people, through: :companies_people 

かに上記のステートメントを変更することがフィックスネストされた属性が更新されないと削除ではないとの問題がそれをコメントアウトすることを発見しました。うわー、かなり予期しない。

関連する問題