パパエンジニアのポエム

奥さんと娘ちゃんへの愛が止まらない

Elixir - Phoenixでページを作成する

今回はページを作成していく。
Routing Action View Templateを理解する。

Routing

web/router.exHomeControllerを追加する。

defmodule StockScraping.Router do
  use StockScraping.Web, :router

  pipeline :browser do
    plug :accepts, ["html"]
    plug :fetch_session
    plug :fetch_flash
    plug :protect_from_forgery
    plug :put_secure_browser_headers
  end

  scope "/", StockScraping do
    pipe_through :browser
    get "/", HomeController, :index
  end
end

Action

HomeControllerを追加する。
web/controllers/home_controller.exを新規作成。

defmodule StockScraping.HomeController do
  use StockScraping.Web, :controller

  # connはPlug.Conn構造体
  def index(conn, _params) do
    render conn, "index.html"
  end
end

View

Viewはヘルパー関数みたいなものらしい。
web/views/home_view.exを追加する。

defmodule StockScraping.HomeView do
  use StockScraping.Web :view

  def title do
    "株出来高増加率ランキング"
  end
end

あえてtitleという関数を定義している。
これでテンプレートで使用可能となる。

Template

HTMLテンプレートのこと。
web/templates/home/index.html.eexを新規追加。
HomeViewに追加したtitle/0を呼び出す。

<p><%= title %></p>

webサーバーを起動させる。

mix phoenix.server

http://localhost:4000 にアクセスするとtitleのみが表示される。