FJCT_ニフクラ mobile backend(mBaaS)お役立ちブログ

スマホアプリ開発にニフクラ mobile backend(mBaaS)。アプリ開発に役立つ情報をおとどけ!

スクリプトでRubyを使ってデータを保存するには

f:id:mbaasdevrel:20180418153723p:plain

スクリプト機能に新しい言語としてRubyが対応しました。Ruby向けには公式SDKは提供されておらず、コミュニティベースで作成されているものを利用しています。

今回はそのスクリプトを使ってデータストアにデータを保存するためのコードの書き方を紹介します。

基本形

まずはスクリプトの基本形です。これでアクセスすると空文字列を返すスクリプトになります。

def call(env)
  req = Rack::Request.new(env)
  [200, {"Content-Type" => "text/plain"}, ['']]
end

NCMBライブラリを読み込む

NCMBライブラリはあらかじめ組み込まれていますので require で読み込めます。ローカルで試す場合には Gemfile に gem 'ncmb-ruby-client' を追加してください。

require 'ncmb'

初期化する

まずNCMBをアプリケーションキーとクライアントキーで初期化します。

application_key = 'YOUR_APPLICATION_KEY'
client_key = 'YOUR_CLIENT_KEY'
NCMB.initialize
  application_key: application_key,
  client_key: client_key

データストアを呼び出す

データストアは以下のように呼び出します。この例ではMessageクラスを定義しています。

message = NCMB::DataStore.new 'Message'

インスタンスを作る

次にMessageクラスのインスタンスを定義します。

item = message.new

値をセットする

値をセットするのは set メソッドになります。こうした処理はJavaScript SDKに似せています。

item.set('name', req.params["name"])

保存する

最後に保存します。これは save メソッドで行います。

item.save

全体の流れ

サンプルのコードは以下のようなコードになります。

require 'rack'
require 'ncmb'

def call(env)
  req = Rack::Request.new(env)
  application_key = 'YOUR_APPLICATION_KEY'
  client_key = 'YOUR_CLIENT_KEY'
  NCMB.initialize
    application_key: application_key,
    client_key: client_key
  name = req.params["name"]
  message = NCMB::DataStore.new 'Message'
  item = message.new
  item.set('name', name)
  item.save
  [200, {"Content-Type" => "text/plain"}, [{object_id: item.objectId}.to_s]]
end

まとめ

RubyライブラリはJavaScript SDKを参考にして作られています。あまり迷わず使えるのではないでしょうか。JavaScriptだと多くなりがちな非同期処理も、Rubyであればありません。とても簡単に書けますので、JavaScriptが苦手な方はぜひRubyでスクリプト機能を使ってみてください。

スクリプト : Rubyスクリプトの作成 | ニフクラ mobile backend

中津川 篤司

中津川 篤司

NCMBエヴァンジェリスト。プログラマ、エンジニアとしていくつかの企業で働き、28歳のときに独立。 2004年、まだ情報が少なかったオープンソースソフトの技術ブログ「MOONGIFT」を開設し、毎日情報を発信している。2013年に法人化、ビジネスとエンジニアを結ぶDXエージェンシー「DevRel」活動をスタート。