###前提・実現したいこと
商品管理アプリケーションを作成しております。
scaffold で作成されたコントローラー(?)に、新たな機能を追加したいです。
下記が新たな機能です。
scaffold で作成された new,craete,edit,update の機能とは別に、 外部ファイルを読み込み、一括でファイル内のデータを登録する「import」という機能
ファイルを読み込むまでは全然進んでおりませんが、トップページに追加したURLリンクがエラーになり困っております。
###発生している問題・エラーメッセージ
0. 番号リストブラウザで「http://localhost:3000/products/」にアクセスします。
- ブラウザ画面で「No route matches {:action=>"import", :controller=>"products"} missing required keys: [:id]」というエラーが発生しています。
エラーメッセージ
###該当のソースコード
ここにご自身が実行したソースコードを書いてください
###試したこと
rails new shopping_ranking -d mysql cd shopping_ranking rake db:create:all rails server --bind=0.0.0.0 rails generate scaffold product \ product_id:integer product_name:string product_parent_id:integer product_id_path:text rake db:migrate
app/views/products/index.html.erb を編集。ファイル末尾に + 部分を追加。
<%= link_to 'New Product', new_product_path %> + <%= link_to 'Import Product', import_product_path %>
config/routes.rb を編集。ファイル先頭部分に + 部分を追加。
Rails.application.routes.draw do resources :products + resources :products do + member do + get 'import' + end + end
app/controllers/products_controller.rb を編集。+ 部分を追加。
+ # GET /products/import + def import + @product = Product.new + end
###補足情報(言語/FW/ツール等のバージョンなど)
より詳細な情報
rails -v -> Rails 4.2.7.1 ruby -v -> ruby 2.1.10p492 (2016-04-01 revision 54464) [x86_64-linux] rake routes (in /root/shopping_ranking) Prefix Verb URI Pattern Controller#Action 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 import_product GET /products/:id/import(.:format) products#import GET /products(.:format) products#index POST /products(.:format) products#create GET /products/new(.:format) products#new GET /products/:id/edit(.:format) products#edit GET /products/:id(.:format) products#show PATCH /products/:id(.:format) products#update PUT /products/:id(.:format) products#update DELETE /products/:id(.:format) products#destroy
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。