だから私はネストされたリソースを持っています
resources :albums do
resources :elements
end
これらの要素を更新、削除、表示できます。私が本当にできないことは、新しい要素を作成することです。したがって、実際にはデータベースに作成されますが、マッピングテーブルには作成されません。モデル:
クラスアルバム:
has_many :elements, :through => :albums_elements
has_many :albums_elements
クラス要素:
has_many :albums_elements
has_one :album, :through => :albums_elements
クラスAlbumsElement:
belongs_to :album
belongs_to :element
エレメントコントローラーには、次のものがあります。
def create
@element = Element.new(params[:element])
@album = Album.find(params[:album_id])
respond_to do |format|
if @element.save
format.html { redirect_to album_elements_path(@album), :notice => 'Element was successfully created.' }
format.json { render :json => @element, :status => :created, :location => @element }
else
format.html { render :action => "new" }
format.json { render :json => @element.errors, :status => :unprocessable_entity }
end
end
end
先ほど言ったように、フォームの作成ボタンを押すと、要素はテーブル「elements」に正しく作成されていますが、「albums_elements」には挿入されていません。私はここで同様の投稿を見ました。そこでは、作者は彼の依存関係を修正するように言われました。しかし、地雷にエラーは表示されませんか?レールに両方のテーブルに挿入するように指示するにはどうすればよいですか?要素とalbums_elements?