はじめに
NotionRubyMapping 解説の第83回目です。あまり利用すること多くないと思いますが、ページ内にデータベースを作成する create_child_database を解説します。まず、データベースを追加するページを取得します。
irb(main):002> page = Page.find "https://hkob.notion.site/create_child_database-b5aa950f352d42bdb3f01d2d4cb212c8?pvs=4" => NotionRubyMapping::Page-b5aa950f352d42bdb3f01d2d4cb212c8
create_child_database
create_child_database の第一引数はデータベースページのタイトルになります。その後は二つずつのペアで、プロパティクラスとそのプロパティ名を並べていきます。このメソッドはブロックを受け付け、ブロック内でページやプロパティのスキーマを設定できます。ここで d はデータベース、pc はスキーマプロパティを示します。これまで解説してきたプロパティを一気に設定してみます。
db = page.create_child_database "New database title", CheckboxProperty, "Checkbox", CreatedByProperty, "CreatedBy", CreatedTimeProperty, "CreatedTime", DateProperty, "Date", EmailProperty, "Email", FilesProperty, "Files", FormulaProperty, "Formula", LastEditedByProperty, "LastEditedBy", LastEditedTimeProperty, "LastEditedTime", MultiSelectProperty, "MultiSelect", NumberProperty, "Number", PeopleProperty, "People", PhoneNumberProperty, "PhoneNumber", RichTextProperty, "RichText", SelectProperty, "Select", TitleProperty, "Title", UrlProperty, "Url" do |d, pc| fp, msp, np, rp, rup, sp = pc.values_at "Formula", "MultiSelect", "Number", "Relation", "Rollup", "Select" fp.formula_expression = "now()" msp.add_multi_select_option name: "MS1", color: "orange" msp.add_multi_select_option name: "MS2", color: "green" np.format = "yen" sp.add_select_option name: "S1", color: "yellow" sp.add_select_option name: "S2", color: "default" d.set_icon emoji: "🎉" end
作成したデータベースでページを一つ作成してみると、以下のようになりました。指定したプロパティが設定されていることがわかります。
おわりに
今日は、ページ内にデータベースを作成する create_child_database を解説しました。
create_child_database のマニュアルはこちらです。その他のマニュアルもここから見てください。