ルート:
resources :carts do
resources :items
end
これにより、次のルートが生成されます。
cart_items GET /carts/:cart_id/items(.:format) items#index
POST /carts/:cart_id/items(.:format) items#create
new_cart_item GET /carts/:cart_id/items/new(.:format) items#new
edit_cart_item GET /carts/:cart_id/items/:id/edit(.:format) items#edit
cart_item GET /carts/:cart_id/items/:id(.:format) items#show
PUT /carts/:cart_id/items/:id(.:format) items#update
DELETE /carts/:cart_id/items/:id(.:format) items#destroy
carts GET /carts(.:format) carts#index
POST /carts(.:format) carts#create
new_cart GET /carts/new(.:format) carts#new
edit_cart GET /carts/:id/edit(.:format) carts#edit
cart GET /carts/:id(.:format) carts#show
PUT /carts/:id(.:format) carts#update
DELETE /carts/:id(.:format) carts#destroy
つまり、アイテムの説明、つまりカートの関係を明確に説明しています。
通常どおりコントローラーを使用します。
を削除する代わりにcart_id
toを設定する理由はわかりませんが、次のようにします。nil
# in items_controller.rb
def destroy
@item = Item.find(params[:id])
@item.update_attributes(:cart_id => params[:cart_id])
respond_to do |format|
format.html { redirect_to items_url }
format.json { head :no_content }
end
end