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

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

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

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

Ruby on Rails 4

Ruby on Rails4はRubyによって書かれたオープンソースのウェブフレームワークです。 Ruby on Railsは「設定より規約」の原則に従っており、効率的に作業を行うために再開発を行う必要をなくしてくれます。

Q&A

解決済

2回答

1507閲覧

Ruby on Railsのルート設定について

aild_arch_bfmv

総合スコア11

Ruby

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

Ruby on Rails 4

Ruby on Rails4はRubyによって書かれたオープンソースのウェブフレームワークです。 Ruby on Railsは「設定より規約」の原則に従っており、効率的に作業を行うために再開発を行う必要をなくしてくれます。

0グッド

1クリップ

投稿2015/11/25 09:09

###前提・実現したいこと
Ruby on Rails 4でルートの設定に困っています。

ruby

1resources :packs

###発生している問題・エラーメッセージ
新規でpackを登録しようと/packs/createに送信しようとすると以下のエラーが返ってきます。

No route matches [POST] "/packs/create"

###ソースコード

ここにご自身が実行したソースコードを書いてください

routeの設定ではあっていると思うのですが、何が原因でしょうか。よろしくお願いします。

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

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

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

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

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

guest

回答2

0

resources :packsでルートを生成した場合、
POST /packs/createではなくPOST /packsが正解ですね。
POST /packsにアクセスした際に呼ばれるアクションがpacks#createです。

rake routesで設定されたルーティングを確認してみれば分かりやすいかと思います。

投稿2015/11/25 09:39

k.tada

総合スコア1679

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

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

aild_arch_bfmv

2015/11/25 10:41

回答ありがとうございます! ということは、form_tagのactionは/packで、methodはpostにすれば送信されますか?
guest

0

ベストアンサー

rails new で新たに application を作った後で
rails generate scaffold pack name:string address:string
のようにして、scaffold で生成してみてください。
confog/routes.rb には
resources :packs
が記載されます。
また、app/views/packs/_form.html.erb をみると、
<%= form_for(@pack) do |f| %>
と form が記述されていることがわかります。

そして、
rake routes を実行すると、次のような出力が得られるはずです。

$ rake routes Prefix Verb URI Pattern Controller#Action packs GET /packs(.:format) packs#index POST /packs(.:format) packs#create new_pack GET /packs/new(.:format) packs#new edit_pack GET /packs/:id/edit(.:format) packs#edit pack GET /packs/:id(.:format) packs#show PATCH /packs/:id(.:format) packs#update PUT /packs/:id(.:format) packs#update DELETE /packs/:id(.:format) packs#destroy

packs#create は、 /packs を POST でアクセスしたときに
呼ばれるようになっていることがわかります。

投稿2015/11/25 14:05

katoy

総合スコア22324

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

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

aild_arch_bfmv

2015/11/25 14:11

承知しました! 詳しくご説明していただき、まことにありがとうございます。 こちら試させていただきます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問