Poryのフィルタ機能とAirtableの関係を理解する
PoryでAirtableのデータベースを使ってWebページをノーコードで構築できます。データの数が多いときに便利なフィルタ機能について調べてみました。
大元のデータベースのFilterだけでは無効
今回はPoryのテンプレート「Pory Jobs」をもとに調査しています。
Poryで読み込んでいるメインのシート(site-content)にFilterという列があるので、最初はてっきりここに書き込めばフィルタに反映されると思っていました。
TokyoとOsakaを追加してみましたが、反応なし・・・
Filtersというシートが重要
あれこれ悩みましたが、Poryのヘルプに答えがありました。
Filtersというシートがフィルタの本体なので、ここにTokyoとOsakaを追加して、Field Nameにどのフィルタとして使うかを宣言します。
すると、このようにフィルタが表示されました! めでたく解決です。
Filtersとsite-contentの記述は一致していないとダメ
ついでなのでフィルタを日本語に変えてみます。
これだとPoryのページには反映されますが、フィルタとして正しく機能しません
原因はメインのシート(site-content)の記述とFiltersの記述が一致していないことにあります。site-contentのFilter1列は複数選択モードで選択肢が用意されているのですが、この選択肢がFiltersシートとリンクしていないのです。
Airtableのリンクはうまく動かない?
そこで、Filtersシートとリンクするように変更します。[Multiple select]を[Link to another record]に変更します。
リンクしたデータを追加したら元のデータを削除して置き換えていきます。
置き換えた後でPoryを見ると、このようにフィルタが正しく機能するようになりました! が、なんか表記がおかしい。
どうやらPoryではAirtableの表記された内容ではなく、リンク情報(?)を出しているようです。
→開発元に問い合わせたところ、Airtableがrecord idを返す仕様になっているのが原因とのことでした。
というわけで、リンクさせた後で面倒ですが再びタイプを[Multiple Select]に戻します。後でまたリンク情報を使いたいときは、列を複製しておくといいと思います。
これで無事表記もなおりました。
まだまだわからないところが多いですが、調査を進めていきます。
この記事が気に入ったらサポートをしてみませんか?