

# やりたいこと

ダミーページからlink_toを使い、purchase_product_pathのページに  
いきたいのですが、エラーが出てしまい上手くいきません。

もし、解決方法などがわかる方がいらしゃいましたら  
ご教授をお願い出来ないでしょうか？

# 発生している問題・エラーメッセージ

[code]

    ActionController::UrlGenerationError in Products#index
    Showing /Users/apple/projects/fleamarket_sample_73e/app/views/products/index.html.haml where line #1 raised:
    
    No route matches {:action=>"purchase", :controller=>"products"}, missing required keys: [:id]
    
    =============================================================================================
    = link_to purchase_product_path do  #こちらの行がExtracted sourceです
      .furima__logo--dami
        = image_tag src="material/logo/logo.png", size: "135x35"
    
[/code]

# 該当するコード

routes.rb

[code]

      resources :products do
        collection do
          get 'get_category_children',      defaults: { format: 'json' }
          get 'get_category_grandchildren', defaults: { format: 'json' }
        end
        member do
          get 'purchase', to: 'products#purchase'
        end
      end
    
[/code]

products_controller.rb

[code]

      def purchase
      end
    
[/code]

rails routesをすると下のようになります。

[code]

    et_category_grandchildren_products GET    /products/get_category_grandchildren(.:format)                                           products#get_category_grandchildren {:format=>"json"}
                       purchase_product GET    /products/:id/purchase(.:format)                                                         products#purchase
                               products GET    /products(.:format)                                                                      products#index
                                        POST   /products(.:format)                                                                      products#create
                            new_product GET    /products/new(.:format)                                                                  products#new
                           edit_product GET    /products/:id/edit(.:format)                                                             products#edit
                                product GET    /products/:id(.:format)                                                                  products#show
                                        PATCH  /products/:id(.:format)                                                                  products#update
                                        PUT    /products/:id(.:format)                                                                  products#update
                                        DELETE /products/:id(.:format)                                                                  products#destroy
    
[/code]

railsで自分のアプリを作ろうとした時に起きた問題です。

「idが渡されていない」という事が問題だと思うのですが、「pathにid」を渡す  
処理がないてこと？と考えていますが、に具体的に自分がどのようにしてコードを書き処理ができる  
のか検討が付かなかったので、投稿させていただきました。よろしくお願いします。


CC BY-SA 4.0
2020-07-28T16:01:28.413
69071
2020-07-29T13:47:25.867
2020-07-29T13:47:25.867
41242
41242
question
ruby-on-rails haml
missing required keys: [:id]というエラーで困っています。