お世話になります。
現在Ruby on Rails6で
掲示板アプりを作ろうとしているのですが
投稿メッセージを入力して送信しようとすると
JSONによる変換がうまく行かないのか
エラーが出ます。
@msg_data = JSON.parse(data)
という箇所でエラーが出ます。
エラー分を訳するかぎり
ハッシュから文字列への変換がうまく行ってない
ということぐらいはわかるのですが
どうすればいいか分からず、
すみませんがご教示ください。
発生している問題・エラーメッセージ
TypeError in MsgboardController#index
no implicit conversion of Hash into String
該当のソースコード
Ruby
1class MsgboardController < ApplicationController 2 layout 'msgboard' 3 4 def initialize 5 super 6 begin 7 @msg_data = JSON.parse(File.read("data.text")) 8 rescue 9 @msg_data =Hash.new 10 end 11 @msg_data.each do |key,obj| 12 if Time.now.to_i - key.to_i >24*60*60 then 13 @msg_data.delete(key) 14 end 15 end 16 File.write("data.txt",@msg_data.to_json) 17 end 18 def index 19 if request.post? then 20 obj= Mydata.new(msg:params['msg'], name:params['name'],mail:params['mail']) 21 @msg_data[Time.now.to_i] = obj 22 data = @msg_data_to_json 23 File.write("data.txt", data) 24 @msg_data = JSON.parse(data) 25 end 26 end 27end 28 29class Mydata 30 attr_accessor :name 31 attr_accessor :mail 32 attr_accessor :msg 33 34 def initialize msg:msg, name:name, mail:mail 35 self.name = name 36 self.mail = mail 37 self.msg = msg 38 end 39end
補足情報(FW/ツールのバージョンなど)
ruby 2.6.6
Rails 6.0.3.2
回答3件
あなたの回答
tips
プレビュー