/var/log/messages

Apr 1, 2019 - 2 minute read - Comments - programming

phoenix excersize (2)

次のステップは Adding Pages になります。

二つの新しいページを追加、とのこと。

構造が違う?

見てるドキュメントと構造が違うな。。

- lib
  - hello
    - endpoint.ex
    - repo.ex
  - hello.ex

みたいなカンジ。

と思ったら

そもそも localhost なコンテンツが見れていない、ということが分かるなど。

ポートでした

default は 4000 なんですが、cloud9 で preview しようと思ったら 8080 にしないと駄目みたいです。

config :hello, Hello.Endpoint,
  http: [port: 8080],

web ディレクトリ

トップレベルに移動しているらしく、以下な形になっているようです。

- web/
  - channels/
  - controllers/
  - models/
  - static/
  - templates/
  - views/
  - gettext.ex
  - router.ex
  - web.ex

上の router.ex 見てみるに以下な記述があります。

  scope "/", Hello do
    pipe_through :browser # Use the default browser stack

    get "/", PageController, :index
  end

この router.ex の記述はドキュメントと同じですね。PageController はどこにあるのかな。

controller

配下に page_controller.ex がありました。index.html を render しています。

- web
  - templates
    - layout
    - page
      - index.html.eex

view

phoenix では view という部品が template を render する、という記載あり。ちょっと静的コンテンツの追加の部分を実装してみます。

むむう

例示されている記述と微妙な差分がありました。hello_controller.ex が以下。

defmodule Hello.HelloController do
  use Hello.Web, :controller

  def index(conn, _params) do
    render conn, "index.html"
  end
end

HelloWeb.HelloController ではなく、でした。あるいは view も以下な記載。

defmodule Hello.HelloView do
  use Hello.Web, :view
end

テンプレも以下、なのかどうか。

<div class="jumbotron">
  <h2>Hello World, from Phoenix!</h2>
</div>

もう少し

URL パラメータ? を表示する例も実装できております。リポジトリとか作りたいけどどうするかな。

phoenix excersize phoenix excersize (3)

comments powered by Disqus