私はプールがたくさんあるトーナメント記録を持っています。私はangularjsでプールを生成することができますし、ユーザーがそれらを承認すると、それらはレールバックエンドに送られて作成され、データベースに保存されます。アクティブなレコードで作成するanglejsを介してオブジェクトのコレクションを送信するにはどうすればよいですか?
これを行う方法の説明が難しいです(検索に使用する言語がわからないと思われます)。角度サービス
o.savePools = function(id, pools) {
return $http.post('/tournaments/' + id + '/create_pools.json', pools);
};
で
routes.rbを で
resources :tournaments, only: [:create, :index, :show] do
resources :fencers, only: [:show, :create] do
end
resources :pools, only: [:show, :create, :destroy] do
end
collection do
put '/create_pools' => 'pools#create_pools'
end
end
プールコントローラで
class PoolsController < ApplicationController
def create_pools
tournament = Tournament.find(params[:tournament_id])
tournament.pools.destroy_all # destroy existing pools.
params["pools"].each do |p|
tournament.pools.create(comment_params)
end
respond_with tournament, tournament.pools
end
private
def pool_params
#params.require(:pool).permit(:number, :strip, :fencers)
params.permit(:pool, array: [:number, :strip, :fencers])
end
end
私はいくつかの側面を行う方法にはかなり混乱していますこれの。 1)コントローラにプールのコレクションを受け取らせるにはどうすればよいですか? jsは{pools:[pool1、pool2、etc.]のようにそれを渡す必要がありますか? params ["pools"]を使ってアクセスしますか?
2)コレクションで強く入力するにはどうすればよいですか?私は与えられたコレクションに個々のプールを強くタイプする適切な方法が何であるかは分かりません。
3)「fencers」プロパティ自体が別のオブジェクトであった場合。私もそれに必要な追加の変更はありますか?
ありがとうございます!私が明確にできるものがあれば教えてください。