質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

JSON

JSON(JavaScript Object Notation)は軽量なデータ記述言語の1つである。構文はJavaScriptをベースとしていますが、JavaScriptに限定されたものではなく、様々なソフトウェアやプログラミング言語間におけるデータの受け渡しが行えるように設計されています。

Neo4j

Neo4jとは繋がったデータに十分合うオープンソースな商グラフデータベースです。全てのJVM言語もしくはHTTP-APIsを通してその他の言語ドライバからも様々な用途で使えます。

Q&A

解決済

2回答

3952閲覧

railsでのJSON fileの読み込み方を教えていただきたいです

tanukichipon

総合スコア14

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

JSON

JSON(JavaScript Object Notation)は軽量なデータ記述言語の1つである。構文はJavaScriptをベースとしていますが、JavaScriptに限定されたものではなく、様々なソフトウェアやプログラミング言語間におけるデータの受け渡しが行えるように設計されています。

Neo4j

Neo4jとは繋がったデータに十分合うオープンソースな商グラフデータベースです。全てのJVM言語もしくはHTTP-APIsを通してその他の言語ドライバからも様々な用途で使えます。

0グッド

1クリップ

投稿2019/07/24 07:20

編集2019/07/24 10:04

school.jsonファイルの位置は画像のようにuniversity.rbと同じディレクトリにあります。### 前提・実現したいこと
JSON fileをrubyで読み込み、neo4jにノードおよびリレーションを作りたいのですが、下記のエラーがでてきて読み込みができません。

railsでのJSON fileの読み込み方を教えていただきたいです。

■■な機能を実装中に以下のエラーメッセージが発生しました。

発生している問題・エラーメッセージ

ENOENT (No such file or directory @ rb_sysopen - /school.json)

該当のソースコード

Ruby

1#university.rb 2require "json" 3 4class University 5 include Neo4j::ActiveNode 6 id_property :code 7 property :uniname, type: String 8 self.mapped_label_name = '大学' 9 has_many :out, :faculties, type: :has 10end 11uni1 = University.create(uniname:"ぷぷ") 12fac = Faculty.create(name:"ぺぺ") 13 14 15File.open('/school.json') do |file| 16hash = JSON.load(file) 17 18i = 0 19 20while i < 780 21 22 uni = University.create(uniname:hash[i]["大学"]) 23 24 hash[i+1]["学部"].each do |name| 25 fac = Faculty.create(name:name) 26 uni.faculties = fac 27 # uni.faculties = Faculty.find_by(name:name) 28 end 29 30 i =+ 1 31 32end 33end #ここのendの必要性がわかりませんが無いとエラーメッセージ 34#SyntaxError (/Users/user/Desktop/workspace/myapp/app/models/university.rb:31: syntax error, unexpected end-of-input, expecting keyword_end) 35#がでてきます。 36

試したこと

json fileを同じディレクトリであるapp/models直下、public直下、asset/javascriptsにおいても上記のエラーメッセージがでてきます。コード更新、配置換えのたびに一応、rake neo4j:migrateはしております。

補足情報(FW/ツールのバージョンなど)

単純にローカルで作ったruby fileでは
File.open('school.json') do |file|
hash = JSON.load(file)
で読み込むことが確認できています。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

'school.json'

Rails.root + 'app/models/concerns/school.json'

ただ、あまり良い場所では無いような、、、

投稿2019/07/24 12:55

winterboum

総合スコア23329

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tanukichipon

2019/07/25 00:37

json ファイルを読み込むことができました! ご教授してくださり本当にありがとうございました!
winterboum

2019/07/25 01:38

良かったです。 置き場所ですが、model ではなく、そのためのデータではないかと思うのです。 lib 辺りに置くのが良いのではないかと思います
tanukichipon

2019/07/25 05:10

なるほど、そのように配置してみます。勉強になります。ありがとうございます。
guest

0

File.open('/school.json')
ここが問題です。これですと file system の 一番上に有ることになってしまいます。
実際にはどこに有るのでしょう。

投稿2019/07/24 09:28

winterboum

総合スコア23329

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tanukichipon

2019/07/24 10:07

コメントしてくださりありがとうございます。jsonファイルの位置は追加しました画像の通り、university.rbと同じディレクトリに配置しております。またFile.open('models/school.json')またはFile.open('school.json')を試しましたが、同様に Errno::ENOENT (No such file or directory @ rb_sysopen - models/school.json) がでてしまいました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問