ExpressionEngineテンプレートでJSONを作成し、関連するURLにRuby JSONライブラリを指定しています。テンプレートは次のようになります。ExpressionEngineテンプレートは空のJSON配列を出力しません
[
{exp:mylib:mytag channel="mychannel" backspace="1"}
{"entry_id":"{entry_id}","title":"{title}"},
{/exp:mylib:mytag}
]
タグはデータを返し、すべてが私のRubyコードは、オブジェクトの配列と完全に動作し、罰金です。しかし、タグがデータを返さない場合(適切なエントリがないため)、Rubyはjson文字列が必要な2オクテット長ではないと不満を表明します。私は、出力が[]
、すなわち空ではあるが有効なJSON配列であることを期待しています。しかし、Firefox/firebugとwgetのURLを参照すると、URLから戻ってくる応答は長さ0バイトでステータス200 OKであることが確認されます。
タグなしのテンプレートと空の角かっこのペアを作成し、同じ結果を返します(ゼロバイト)。
空の角かっこのペアは、EEテンプレート言語の予約トークンです。誰もhtmlページ内に大括弧で囲む必要がないと仮定して、巧妙な最適化が行われていますか?
タグの出力に関するものではありません。文字通り2文字の '[]'(_no_ tags)で構成されるテンプレートは、EEで処理すると空白になります。 – iftheshoefritz
EEテンプレートプリファレンスマネージャで設定されているもの(PHPが有効になっているもの)[*テンプレートタイプ*](http://expressionengine.com/user_guide/cp/design/templates/new_template.html#template-type) – rjb
{if_no_results}条件の提案を使用します。 – iftheshoefritz