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

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

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

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

Ruby on Rails 4

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

Q&A

解決済

2回答

673閲覧

Ruby on railsでwebアプリ(webサービス)を作る際のセオリーについて

widget11

総合スコア221

Ruby

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

Ruby on Rails 4

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

0グッド

0クリップ

投稿2018/01/05 20:35

今現在、兼ねて自身が作りたいと考えていたwebサービスを作成しております。
今までチュートリアルにrailsでアプリケーションを作っていた際はほとんど単一のページ(html.erbファイルが一つ)で作成していました。しかし大体のwebサービス(webページ)は単一のページで成り立っている訳ではなく複数のページで成り立っていると思います。

ローカル環境でwebページを作成する際は
routes.rbにルーティングを記入し、ここに記載したアクション名と同名の関数をコントローラーファイルに定義し、更に同名のhtml.erbファイルを作成しページを表示すると思います。
今、自分は例えば単純にページを2つ作りたい場合、index.html.erbファイルとindex2.html.erbファイルの2つを作り、このようにコントローラー名を2つ定義してlocalhost3000にアクセスした時、コントローラー/パス のパス名を変えてページを見れるようにしております。

class ServiceController < ApplicationController def index end def index2 end end
Rails.application.routes.draw do get 'service/index'=> 'service#index' get 'service/index2' => 'sevice#index2' end

しかし今はまだページが2つなのでこうやって対応できている面がありますが、これが10、30、50と数が増えてきた際、いちいちパス名とやコントローラーを定義するのは非常に非効率なのではないかと考えました。
自身で色々調べてみたのですが、単純にページを増やしたい際scaffoldを使うのも違うと思いましたし、答えが見つからず困っております。
railsでアプリケーションを開発する際、複数のページを作る際はどのように書けばいいのでしょうか。
それともこのように力技を行わなければならないのでしょうか。
分かりづらい文章で大変恐縮ですがよろしくお願い致します。

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

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

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

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

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

guest

回答2

0

ベストアンサー

Ruby on Rails チュートリアル 実例を使ってRailsを学ぼう
https://railstutorial.jp/
を読んで、実際に手をうごかしてサイトを作ってみることをお勧めします。

rails の基本を修得できると思います。

投稿2018/01/06 02:06

katoy

総合スコア22324

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

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

0

Ruby on Rails は「規約に従うならば、いちいち記述しなくてよい」というポリシーがあります。
適切な命名規則に従う限り、自動的に適切な処理が行われるようになっているのです。

Rails ではコントローラーが命名規則に従っているとき、自動的にルーティングが行われ、何も記載していなくとも、
/{controller}/{method} から、Controller クラスの method メソッドが呼ばれるように(そして自動的に対応するビューの erb が出力されるように)なっています。

試しに routes.rb から index, index2 に関する記述を取り除いてみてください。それでも(適切な命名であれば)、意図したように動くはずです。

投稿2018/01/06 00:58

tacsheaven

総合スコア13703

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

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

widget11

2018/01/08 18:10 編集

ご回答ありがとうございます。 routes,rbの記述を取りのぞいてみたのですが、ルーティングエラーとなって表示はできませんでした。 しかしservice_controller.rbファイルで定義したindexやindex2といったものをコメントアウトしてみるとhtml.erbの内容が双方ともレンダリングできました。 つまり単純にhtmlをレンダリングしたい場合コントローラーファイルで定義せずともroutes.rbでURI(URL)のパスをgetし、各々のパス、アクションに対応したhtml.erbファイルを用意すればlocalhost3000にアクセスした際表示されるということが分かりました。 重ねての質問となってしまうのですが、実際railsでwebサイトやサービスを作成する際このように一つ一つパスを取得し、アクション名を定義しhtmlファイルを紐づけてページを作成していくというのは一般的なやり方なのでしょうか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問