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

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

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

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Q&A

解決済

1回答

613閲覧

【Rails】resourcesメソッドを使ってルーティングを定義したい

_chii

総合スコア50

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

0グッド

0クリップ

投稿2020/11/11 00:47

編集2020/11/11 00:48

環境

macOS 10.15.5
Rails 5.2.4.2
Docker 19.03.12

前提・実現したいこと

resourcesメソッドを使ってルーティングを定義したいです!

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

現状のコードは下記になります。

Rails.application.routes.draw do #下記はresourcesに書き換えたコード(正常に動作しない) resources :users, :posts resources :login do member do get 'users#login_form' get 'users#login' end end resources :logout do member do get 'users#logout' end end resources :users/:id/update do member do get 'users#update' end end #下記はresourcesに書き換える前のコード(正常に動作する) # get "login" => "users#login_form" # post "login" => "users#login" # get "logout" => "users#logout" # post "users/:id/update" => "users#update" # get "users/:id/edit" => "users#edit" # post "users/create" => "users#create" # get "signup" => "users#new" # get "users/index" => "users#index" # get "users/:id" => "users#show" # get 'users/index' # get "/" => "posts#index" # get "posts/new" => "posts#new" # get "posts/:id" => "posts#show" # post "posts/create" => "posts#create" # get "posts/:id/edit" => "posts#edit" # post "posts/:id/update" => "posts#update" # get "posts/:id/destroy" => "posts#destroy" end

試したこと

わたしなりにこちらの下記のサイトを参考に実行をして試してみたのですが実行内容が間違えているみたいで正常に動作しません。resourcesメソッドを使ったルーティング定義について内容理解ができていないのが理由だと思いますが現状のコードからどのように書き換えたら良いかご教授をお願いできないでしょうか?よろしくお願い致します。
https://pikawaka.com/rails/resources

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

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

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

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

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

maisumakun

2020/11/11 01:31

「正常に動作しない」とは、「どのようになるべき」ものが「どんな挙動を起こしている」のでしょうか?
guest

回答1

0

ベストアンサー

現状のコードからどのように書き換えたら良いかご教授をお願いできないでしょうか?

元のルーティングがresourcesと合わないものもあるので、URLも変わります

  • indexアクションは/users/直下になります。
  • createupdatedestroyへのルートにもcreateupdatedestroyといった文字列は入らず、HTTPメソッドで識別される形となります。

resources :users/:id/update doなどは、どのようなルーティングを描きたいのかすら見えてきません(デフォルトのresources :usersで生成されるupdateアクションと、どのような違いがあるのでしょうか)。

投稿2020/11/11 01:35

maisumakun

総合スコア145208

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

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

maisumakun

2020/11/11 01:36

URLを維持したいのであれば(特にlogin、logoutなど)、無理にresourcesを使わなくてもいいです。
_chii

2020/11/11 01:48

ご回答ありがとうございます!ただそのようにしてしまうと初期のwelcome画面になってしまいます...色々調べてみたのですがやはり説明を伺ってもどうしてもわたしの現在のコードからどう書き換えるべきなのかが見えてこなくて...
maisumakun

2020/11/11 01:50

> ただそのようにしてしまうと初期のwelcome画面になってしまいます えっと、ルーティングの変更内容は何も説明していないのに、何を「そのように」したのでしょうか?
maisumakun

2020/11/11 02:13

rake routesなど、ルーティングが語のように設定されているか確認する手段もいくつかありますので、そういったもので「意図したURLに設定されているのか」確認しつつ進めてみましょう。 (「初期のwelcome画面になってしまいます」というのが、何をどうしたらそうなるのか記載されていない以上、現状ではコメントできません)
_chii

2020/11/27 10:39

説明が思うようにできず申し訳ありません...なんとか試行錯誤を繰り返し問題解決に至りました。ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問