create_child_database: NotionRubyMapping 解説 (83)

はじめに

NotionRubyMapping 解説の第83回目です。あまり利用すること多くないと思いますが、ページ内にデータベースを作成する create_child_database を解説します。まず、データベースを追加するページを取得します。

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

作成したデータベースでページを一つ作成してみると、以下のようになりました。指定したプロパティが設定されていることがわかります。

created database

おわりに

今日は、ページ内にデータベースを作成する create_child_database を解説しました。

create_child_database のマニュアルはこちらです。その他のマニュアルもここから見てください。

create_child_database

NotionRubyMapping解説