基本的に、すべてルート コントローラーとアクションを介してリンクされています。
ルート ファイル (your_app_root/config 内の routes.rb ファイル) は、着信 URL を効果的にインターセプトし、その URL をコントローラー/アクションにマップします (実際には、Nginx などの Web サーバーによって行われ、次のような方法でリクエストを Rails アプリに渡します)。ユニコーンですが、それはまったく別の質問です)。
したがって、標準の HTML サイトのセットアップでは、home というフォルダーがあり、そのフォルダーに index.html がある場合があります。
そのため、 some_url/home/index に移動すると、ブラウザーでレンダリングされた index.html ファイルの内容が取得されます。
RoR でこれを機能させるには、コレクションの get リクエストを定義するルートが必要です (複数のパラメーターが渡されるか、パラメーターが渡されません)。
それはこのように見えるかもしれません
YourApp::Application.routes.draw do
get 'home', to: 'home#index', as: :home
# etc...
some_url/home に移動すると、そのルートはブラウザーをホームコントローラーのインデックスアクションに接続します
ホームコントローラーのインデックスアクションは、空のアクションにすることができます
class HomeController < ApplicationController
def index
end
end
また、app/views/home フォルダーに index.html.erb がある場合、ActionController が HTML、css、javascript、json、または XML にレンダリングするように指示したものを変換すると、そのファイルが自動的にレンダリングされます。リソース ルートを使用し、受信したリクエストは XML または JSON リクエストであり、結果のデータをブラウザに送り返します。
データベースから表示されるデータを取得したい場合、コントローラー アクションは、そのデータを取得し、ビューが erb タグで使用できるオブジェクト (@ 記号で示されるインスタンス変数) に詰め込む責任があります。
例えば
class HomeController < ApplicationController
def index
@some_records = SomeModel.all
end
end
これは、次のように index.html.erb ファイルで使用できます。
<ul>
<% @some_records.each do |rec| %>
<li> A record: <%=rec.some_method%> </li>
<% end %>
</ul>
ルートがあるので、ルート名をリンクやボタンのパスとして使用して、ブラウザーからサーバーにデータをポストし、プロセス全体を最初からやり直すことができます。
これは、すべてがどのように結びついているかを正確に説明するものではありませんが、すべてがどのように発生するかを理解するには十分に近いものです。