2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

[初心者向け]Railsのコンソールでjbuilderの中身を確認した話

Posted at

やったこと

JsonをRailsのアプリで扱いたく、jbuilderで値を生成しました。
ただ、使う前に欲しいデータが手に入るのか確認したく、コンソールで確認してみました。
その手続きの話です。

そもそも、Jbuilderとは?

Railsの機能としてある、Builderテンプレートの中の1種で、Railsガイドの説明は以下の通りです。

BuilderテンプレートはERBの代わりに使用できる、よりプログラミング向きな記法です。これは特にXMLコンテンツの生成を得意とします。

JbuilderもBuilderテンプレートの一種であり、また、RailsのGemの一つでもあるそうです。JbuilderはRailsのGemfileにデフォルトで含まれています。なので、削除をしていない限り特に何もインストールせずに使えます。

使い方

Railsガイドによると、Jbuilderの具体的な使い方は下記の通り。

.jbuilderという拡張子を持つテンプレートでは、jsonという名前のJbuilderオブジェクトが自動的に利用できるようになります。

some_file_name.json.jbuilder
json.name("Alex")
json.email("alex@example.com")
#=> { "name": "Alex", "email": "alex@example.com" }

その他の実際に利用する際の具体的な使い方は、公式ドキュメントや以下の記事が詳しかったです。

実際にどんなコードが生成されるのか確認してみた

では本題です。実際にJsonデータを使うのはviewなのですが、その前に、きちんとJsonデータが作られているか確認したく、コンソールで確認してみることにしました。

$ rails c

で、コンソールを立ち上げて

[1] pry(main)> @categories = Category.all

インスタンス一覧を@categoriesに代入します。
そして、コンソールで順番に下記を実行します。

[2] pry(main)> Jbuilder.encode do |json|
[2] pry(main)*   json.array! @categories, :code, :name
[2] pry(main)* end
#=> "[{"code":100, "name":"カテゴリー1"},{"code":200, "name":"カテゴリー2"},{"code":300, "name":"カテゴリー3"}]

無事、欲しいjsonデータが出力されていました^^
json.array! @categories, :code, :nameの部分は、先にあげた下記の記事を参考に作成したものです。

引き続き、Jbuilderテンプレートを使って、生成したデータを利用していこうと思います^^

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?