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

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

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

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

Ruby on Rails

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

Q&A

解決済

1回答

1045閲覧

Rails ページをたくさん作りたいときのrouteとcontrollerのコード

mbaby__8

総合スコア66

Ruby on Rails 6

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

Ruby on Rails

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

0グッド

1クリップ

投稿2020/07/20 01:11

railsでたくさんページを作るとき

例えば第1代~45代アメリカ大統領の説明ページを作るとしたら毎回

routeで

get"trump" => "america#trump"
get "obama" => "america#obama"
get "bush" => "america#bush"
:
:
:

controllerで

def trump
end
def obama
end
def bush
end
:
:
:

と、書いていかないといけないのでしょうか?
それとももっと効率の良い書き方があるのでしょうか?

教えていただけると幸いです。

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

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

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

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

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

maisumakun

2020/07/20 01:14 編集

それぞれ表示したいページの内部構造はどの程度違う状況でしょうか? (URL問題を置いておいたとしたら同じアクションで表示するページだけ切り替えて対応できる状況でしょうか、それとも内部処理を考えればアクションごと作り分けないといけない感じでしょうか?)
guest

回答1

0

ベストアンサー

resources :prejidents で def show へ持って行って(必要ならそこで場合分け)で良いのでは。
普通は params[:id] は 1とか10とかのdatabaseのidを渡しますが、
https://www.example.com/presidents/trump とすることで
params[:id] に "trump"を入れることもできますし。

投稿2020/07/20 03:34

winterboum

総合スコア23329

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

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

mbaby__8

2020/07/20 13:12

その場合はpresidentモデル作って、controllerで def show @trump = President.find(params[:id]) end ですか? それともモデルなしでも出来るのでしょうか。
winterboum

2020/07/20 13:22

モデル作ってください。 それぞれの大統領の表示すべき情報をしまうために。 もしDBにするほどのことでもない のでしたらhttps://qiita.com/Toman1223/items/8633142312bfa886d50b という手も有りますが。
mbaby__8

2020/07/20 13:28

def show @id = params[:id]  if @id == "trump" render action: :trump elsif @id == "abama" render action: :abama end で表示できたのですが、この書き方で大丈夫でしょうか?
winterboum

2020/07/20 13:35

まぁよいですが、大統領ごとにviewを素で書くってことですね? それと abama大統領って知らないです。 私だと、 if %w(trump obama lincorn).include? params[:id] render action: params[:id] else render action: :nobody end ですね
mbaby__8

2020/07/21 02:53

ありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問