(Author : Fuji Business International Mamoru Fujinoki)
はじめに
自社のウェブサイトから問い合わせやコンタクトフォームを設置して管理しているケースは多いと思います。
今回は、Ruby on Railsで作成されたウェブサイト上の問い合わせフォームから、「kintone_rb」を利用して、kintoneの問い合わせ管理アプリと連携して管理する方法を紹介します。
利用しているSDKは、有志の開発者により作成されたものです。サイボウズではサポート対象外となります。ライセンスや機能などをご確認の上、ご利用ください。
事前に必要なもの
- Rails開発環境(Railsが初めての方はこちらを参考に設定してください。「Rails をはじめよう」)
- Ruby 2.1.0 以上 (本TipsはRuby 3.1.2, Rails 7.0.3で動作を確認しています。)
- kintoneアカウント
問い合わせ管理アプリの設定
ステップ1
kintoneアプリストアより、「問い合わせ管理」アプリを追加します。
「問い合わせ管理」アプリを開き、「アプリの設定を変更する」アイコンをクリックします。
フォームのフィールドをテーブルを参考にフィールドコード等を確認・変更します。
フィールドの種類 | フィールド名 | フィールドコード |
---|---|---|
文字列(1行) | 顧客名 | Customer |
文字列(1行) | ご担当者名 | Customer_name |
ラジオボタン | 問い合わせ種別 | QType |
文字列(複数行) | 詳細 | Detail |
ステップ2
次に「設定」タブを開き、「APIトークン」をクリックします。
「生成する」ボタンをクリックし、「レコードの追加」にチェックします。その後、設定を「保存」します。
生成したAPIトークンはコーディングの際に必要になるのでメモしておきます。また、アプリのIDも控えておきます。(以下のサンプルアプリの場合は103です。)
最後にアプリの設定を反映させるために「アプリの更新」をクリックします。
以上で「問い合わせ管理」アプリの設定は終了です。
問い合わせフォームの作成
ステップ1
それでは、早速、Ruby on Railsによる問い合わせフォームアプリケーションを作りましょう。
(Ruby on Railsの開発環境がない場合、こちらの「Railsをはじめよう」を参考に設定してください。)
ターミナルを開き、次のコマンドを実行します。
これによりContactというRailsのアプリケーションが作成されます。
これ以降のコマンドは作成されたcontactディレクトリ内で実行するので、以下コマンドでディレクトリを移動してください。
ステップ2
次にフォームの作成の前に kintone_rb をインストールします。
Gemfileを開いてコマンドを追加します。
ファイルの最後に、次の内容を記載します。
ファイルを保存後、次のコマンドを実行します。
ステップ3
次のコマンドでコントローラーの作成をします。コントローラー名は例として「inquiries」とします。
ステップ4
次に「Config」フォルダー内の「routes.rb」ファイルを開いて、下記のコーディングを参考に編集します。
解説
今回は問い合わせフォームのみ作成するため、以下のようにルーティングを定義しました。
HTTP動詞 | パス | フィールドコード | 目的 |
---|---|---|---|
GET | /inquiries | inquiries#new | 問い合わせを1つ作成するためのHTMLフォームを返す |
POST | /inquiries | inquiries#create | 問い合わせを1つ作成する |
リソース名は先ほど作成した「inquiries」を指定しています。
また、ホームページには、問い合わせ作成のフォームを設定します。
ステップ5
「views」フォルダー内の「inquiries」フォルダー内に「new.html.erb」ファイルを作成します。
下記のコードを参考にform builderを使って、問い合わせフォームを作成します。
以下のようなフォームが生成されます。
ステップ6
次に先程指定したresource名のモデルを生成します。
下記のコマンドを実行し、「inqury」モデルを生成します。
これにより以下のモデルが生成されます。
フィールド名 | フィールドタイプ |
---|---|
company_name | string |
client_name | string |
contact_type | string |
details | text |
以下のコマンドでマイグレーションを実行して、データベースにテーブルを作成します。
これでInquiriesテーブルがデータベース上に作成されます。
(今回は、デフォルトのデータベース「sqlite3」を使用しています。まだインストールされていない場合は次のコマンドを実行してインストールして下さい。)
ステップ7
次に先程作成したコントローラーの編集を行います。
「Controllers」フォルダー内の「inquiries_controller.rb」をエディターで開きます。
下記を参考にコーディングします。
解説
今回は簡素化するためにコントローラーのアクションはnewとcreateのみ定義しています。
newメソッドで問い合わせフォームを表示し(特に処理は無いのでメソッド内はブランク)、createメソッドで入力データを保存します。
フォームのデータをデータベースに保存した後にkintoneへ登録します。
kintone_rbの読み込みとインスタンスの作成部分です。
お使いのサブドメイン名、上記で控えておいたAPIトークン、アプリケーションIDを指定します。(詳細については、GitHub上のReadmeを参照して下さい。)
ハッシュ形式でフォームレコードを設定し、APIでkintoneに登録します。
以上でRuby on Railsによる問い合わせフォームの作成は終了です。
動作確認
以下のコマンドでローカルのRailsサーバーを起動して下さい。
ブラウザでhttp://localhost:3000をURLに指定すると以下の問い合わせフォームが表示されます。
適当にデータを入力し、「送信」ボタンをクリックするとkintoneに新しいレコードが追加されます。
まとめ
問い合わせフォームやコンタクト、アンケートの実施など、社外のデータを収集する際にRuby on Railsで作成されたウェブサイトを利用されている方は多いと思います。
そのシステムとkintoneを連携して管理したいシナリオには、今回使用したRuby用のREST API クライアントである「kintone_rb」が大変便利です。
簡単なコーディングでkintoneとの連携が可能なのでお試しください。
更新履歴
- 2022年6月30日
利用する kintone REST API クライアントを kintone REST API client for Ruby から kintone_rb に修正
参照サイト
このTipsは、2022年6月版 kintoneで確認したものになります。
記事に関するフィードバック
記事のコメント欄は記事に対するフィードバックをする場となっております。
右の記事フィードバックのためのガイドを参照してコメントしてください。
記事のリンク切れなど、気になる点がある場合も、こちらのフォームからフィードバックいただけますと幸いです。