Docs Menu
Docs Home
/ / /
Mongoid
/

MongoDBデータの表示 - Sinatra

1

プロジェクトのルート レベルで、app.rb というファイルを作成します。 次の内容を app.rbファイルに貼り付けて、必要な gem と構成ファイル をロードします。

require 'sinatra'
require 'mongoid'
Mongoid.load!(File.join(File.dirname(__FILE__), 'config', 'mongoid.yml'))
2

app.rbファイルに、sample_restaurantsデータベース内のサンプルrestaurantsコレクションのデータを表す Restaurant というモデルを作成します。

class Restaurant
include Mongoid::Document
field :name, type: String
field :cuisine, type: String
field :borough, type: String
end
3

HTML とRuby を使用して、データを指定された方法で表示するためのビューを作成します。

プロジェクトのルート レベルに、views というディレクトリを作成します。 次に、list_restaurants.erb というファイルを作成します。 次のコードを list_restaurants.erbファイルに貼り付けます。

<!DOCTYPE html>
<html>
<head>
<title>Restaurants List</title>
</head>
<body>
<h1>Restaurants List</h1>
<table border="1">
<tr>
<th>Name</th>
<th>Cuisine</th>
<th>Borough</th>
</tr>
<% @restaurants.each do |restaurant| %>
<tr>
<td><%= restaurant.name %></td>
<td><%= restaurant.cuisine %></td>
<td><%= restaurant.borough %></td>
</tr>
<% end %>
</table>
</body>
</html>
4

次のコードに示すように、app.rbファイルに、list_restaurants という get ルートを追加します。

get '/list_restaurants' do
@restaurants = Restaurant
.where(name: /earth/i)
erb :list_restaurants
end

このルートは、nameフィールドの値に string "earth" が含まれる Restaurant ドキュメントを検索します。 このルートは list_restaurants ビューを使用して結果をレンダリングします。

5

結果をレンダリングするためのビューを生成する代わりに、to_json メソッドを使用して結果をJSON形式で表示できます。

結果をJSONドキュメントとして返すには、app.rbファイル内の list_restaurants ルートを次のコードで置き換えます。

get '/list_restaurants' do
restaurants = Restaurant
.where(name: /earth/i)
restaurants.to_json
end
6

Ruby Webサーバー を起動するには、アプリケーションルートディレクトリから次のコマンドを実行します。

bundle exec ruby app.rb

サーバーが起動すると、アプリケーションがポート 4567 で実行中ことを示す次のメッセージが出力されます。

[2024-10-01 12:36:49] INFO WEBrick 1.8.2
[2024-10-01 12:36:49] INFO ruby 3.2.5 (2024-07-26) [arm64-darwin23]
== Sinatra (v4.0.0) has taken the stage on 4567 for development with backup from WEBrick
[2024-10-01 12:36:49] INFO WEBrick::HTTPServer#start: pid=79176 port=4567
7

ウェブ ブラウザでURL http://localhost:4567 /list_restaurants を開きます。ページにはレストランのリストとそれぞれの詳細が表示されます。

レストランのレンダリングされたリスト

注意

問題が発生した場合は、 MongoDB Community フォーラム Feedbackでサポートを依頼するか、ページ右上隅の ボタンを使用してフィードバックを送信してください。

戻る

MongoDB接続の構成 - Sinatra