現在Sinatraで、入力された値を受け取って、ページに表示するアプリを作っているのですが、JSONの読み込みについてあまり理解できていません。
data = []
open(json_path) do |io|
data = JSON.load(io)
end
3行目の(io)という引数はどういう働きをしているのでしょうか?
JSON.loadの引数にはファイルオブジェクトを指定するらしいのですが、ファイルオブジェクトが何なのか調べてもよくわかりません...
全体のコードも載せておきます。
ruby
1require 'json' 2json_path = File.dirname(__FILE__) + '/data/data.json' 3 4get '/form' do 5 open(json_path) do |io| 6 @data = JSON.load(io) 7 end 8 9 erb :form 10end 11 12post '/form' do 13 datum = { 14 "name" => params[:name], 15 "email" => params[:email], 16 "content" => params[:content], 17 } 18 19 data = [] 20 open(json_path) do |io| 21 data = JSON.load(io) 22 end 23 24 data << datum 25 26 open(json_path, 'w') do |io| 27 JSON.dump(data, io) 28 end 29 30 redirect '/form' 31end
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。