4

浅いネストされたリソースに問題があります。私のルートには、ネストされたリソースの大きなツリーがありますが、そのうちの 1 つは浅くない必要があります。簡単な例:

  resources :days, shallow: true do
    resources :meals, shallow: true do
      resources :ingredients, shallow: false
      resource :recipe, shallow: true
    end
  end

デイズリソースが欲しいです。その中に浅い食事のリソース。食中の浅くない食材資源。食材には一意の ID がないためです。さらにレシピリソース。問題は、shallow: false動作しないことです! これは、Rails ガイドに記載されています。

親リソースに :shallow オプションを指定することもできます。この場合、ネストされたリソースはすべて浅いものになります。

だから私は食材のためのそのようなルートを取得します:

    meal_ingredients GET    /meals/:meal_id/ingredients(.:format)     ingredients#index
                     POST   /meals/:meal_id/ingredients(.:format)     ingredients#create
 new_meal_ingredient GET    /meals/:meal_id/ingredients/new(.:format) ingredients#new
     edit_ingredient GET    /ingredients/:id/edit(.:format)           ingredients#edit
          ingredient GET    /ingredients/:id(.:format)                ingredients#show
                     PATCH  /ingredients/:id(.:format)                ingredients#update
                     PUT    /ingredients/:id(.:format)                ingredients#update
                     DELETE /ingredients/:id(.:format)                ingredients#destroy

しかし、私はこのようなものが欲しいです:

GET    /meals/:meal_id/ingredients
POST   /meals/:meal_id/ingredients
GET    /meals/:meal_id/ingredients/new
GET    /meals/:meal_id/ingredients/:id/edit
GET    /meals/:meal_id/ingredients/:id
PATCH  /meals/:meal_id/ingredients/:id
PUT    /meals/:meal_id/ingredients/:id
DELETE /meals/:meal_id/ingredients/:id

何か案は?

4

0 に答える 0