質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Q&A

1回答

1610閲覧

Ruby on Rails の scaffold を使用し、機能を追加する方法

donkydonut

総合スコア8

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

0グッド

0クリップ

投稿2016/08/28 05:51

###前提・実現したいこと
商品管理アプリケーションを作成しております。
scaffold で作成されたコントローラー(?)に、新たな機能を追加したいです。

下記が新たな機能です。

scaffold で作成された new,craete,edit,update の機能とは別に、 外部ファイルを読み込み、一括でファイル内のデータを登録する「import」という機能

ファイルを読み込むまでは全然進んでおりませんが、トップページに追加したURLリンクがエラーになり困っております。

###発生している問題・エラーメッセージ
0. 番号リストブラウザで「http://localhost:3000/products/」にアクセスします。

  1. ブラウザ画面で「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

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

URLリンクにidを渡していないからではないですか?

投稿2016/08/28 06:13

kenny_sayama

総合スコア1036

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問