クライアントから、他のオブジェクトに関連するオブジェクトを送信しています:
変数データ = { 「コメント」: 結果.コメント, "ドキュメント": { "id": 結果.doc.id } "サイト": { "url": result.site.url } }; $.ajax({ URL: '/データ', タイプ: 'POST', データ: データ });
/data
これは私のコントローラーに投稿されます。メソッドにはcreate
、次のコード ブロックがあります。
デフォルト作成 @data = Data.new(params[:data]) @data.user_id = current_user.id Respond_to do |フォーマット| @data.save の場合 @doc = Doc.find_or_create_by_id(params[:doc]) @doc.save @site = Site.new(params[:site]) @site.doc_id = @doc.id @site.save format.html //もの format.json //もの format.js //もの 終わり 終わり
この問題に正しく取り組んでいるかどうか、私は興味があります。私が持っているような関連オブジェクトの場合、コントローラーはかなり「重い」ようです。
この問題に対する他の解決策はありますか?
編集:
データ・モデル:
クラスデータ 所属先 :site, :polymorphic => true 所属先:ユーザー 終わり