🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Ruby

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

Ruby on Rails

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

Q&A

解決済

1回答

1168閲覧

Railsのrouteの設定でgetパラメータで特定の文字列が入っているときに処理を分岐させたい

yoshipu

総合スコア115

Ruby

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

Ruby on Rails

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

0グッド

0クリップ

投稿2019/10/22 05:08

編集2019/10/22 05:16

次にようにルーティングしていてgetパラメータで5文字のランダムのテキストを入れるときに、"create"という文字も入ってしまいます。

getパラメータで"create"という文字のときは通常の処理(5文字のランダムテキストを受け取るとき)別の処理をさせたい場合があります。

上長にget 'user/create'は使わないし、勝手にページが見つかりませんになるから書く必要がないから書かないでくれと言われています。

その場合、コントローラーで"create"を文字列比較や正規表現(create以外のほかの文字列に対応させるため)で処理を分岐させる方法を思いつきました。

そのほかにもし、config/route.rbの設定等で処理を分岐させる方法がありましたらヒントをいただけないでしょうか。

post 'user/create', to: 'users#create' get 'user/:id', to: 'users#show' // これ以外で get 'user/create', to: 'users#hoge'

参考にしたもの
Rails のルーティング - Rails ガイド

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

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

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

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

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

maisumakun

2019/10/22 05:10

「詳細は書けないのですが、get 'user/create'が使えないという状態です。」とありますが、その「詳細」がわからないと、できない方法を提案されてしまう危険が大きいです。どのような事情か、可能な範囲で説明いただけると助かります。
maisumakun

2019/10/22 05:18

「勝手にページが見つかりませんになる」とはどういう意味でしょうか。
yoshipu

2019/10/22 05:18

>上長にget 'user/create'は使わないし、勝手にページが見つかりませんになるから書く必要がないから書かないでくれと言われています。 申し訳ありません。 これを自分で書いていて思ったのですが、これを言われたときは別の機能を作っていたときだったので、状況が変わったことと理由を説明し、get 'user/create'を使いますというべきでした。
yoshipu

2019/10/22 05:26

>「勝手にページが見つかりませんになる」とはどういう意味でしょうか。 404 not foundが自動ででるという意味で書きました。 ただ、勝手ではなくて、Railsかサーバ側の設定が必要かもしれません。
guest

回答1

0

ベストアンサー

いちおう補足までですが、get 'user/:id'get 'user/create'を併記する場合、get 'user/create'を先に書く必要があります。

ルーティングは上から処理されますので、get 'user/:id'が先にあると、user/createでもそちらに入ってしまいます。

投稿2019/10/22 05:21

maisumakun

総合スコア145975

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問