スポンサーリンク

2015年6月15日

[Elixir+Trot]テンプレートをレンダリングするだけの簡単なお仕事~

#目的

Trotフレームワークでテンプレートのレンダリング機能を利用する。


#実行環境

OS: Windows8.1
Haml: ?
Erlang: Eshell V6.4, OTP-Version 17.5
Elixir: v1.0.4
Trot Framework: v0.5


#始める前に

前回の記事の続きになります。

eexとhamlのテンプレートをレンダリングします。
追加もそんなにないので簡単でした。

ちょっとばかり疑問なのですが、
何故かHamlテンプレートに"!!!"のDOCTYPEを追加する記述をすると、
ArgumentErrorが発生してテンプレートがレンダリングされません。

トレースすると、Calliopeの方で何か起こっているような感じですね。
記述を消せば、実行に支障はないので気にしていませんが・・・
(Hamlのバージョンですかね・・・不明ですし)


#参考文献

https://github.com/hexedpackets/trot


#目次

1. テンプレートをレンダリングするだけの簡単なお仕事

##1. テンプレートをレンダリングするだけの簡単なお仕事


まずは、テンプレート用のディレクトリを作成します。
----
>cd プロジェクトディレクトリ
>mkdir priv
>cd priv
>mkdir templates
>cd templates
----

/priv/templatesディレクトリへ以下の名称の二つファイルを作成して下さい。
名称1: template.html.eex
名称2: template.html.haml

ファイルの内容は以下の通り。

priv/templates/template.html.haml


priv/templates/template.html.eex


テンプレートの内容は説明をするまでもないと思いますが、
一点だけ、<%= %>でElixirのコードを埋め込んでいます。

lib/trot_sample/router.exを開き、以下の通り編集します。


ルーティング先を定義して、render_templateでテンプレートファイルを指定しています。
第二引数には、送っているパラメータが記述されていますね。

第二引数含めて複数のパラメータを送るのはまだやっていないので何とも分かりません。
検証したらまた記事を書きたいと思います。
(フォームデータの受け取りとかも試さないとね・・・)

Tips:
"@template_root"の記述を使えば、
テンプレートを置くディレクトリを変更することもできるみたいです。
例) @template_root "templates/root"


#管理人の独り言~

こういった小さい事の積み重ねで行きたいですね~
ベイビーステップがいいです(笑)

まぁ、READMEにも記述があり大した内容の記事ではありませんが、
お役に立ったら嬉しいです。

Sinatraやってる時に、HamlとSlimどっちを使うかでHamlを選択しておいて良かった(笑)
Trotには、Calliope組み込まれているのでHamlを使えて嬉しいです。(個人的に記述が楽)
Calliopeとは、Elixirで使えるHamlのParserです。
Github - Calliope: https://github.com/nurugger07/calliope

人気の投稿