実現したいこと
rubyを使いcsvファイルを出力する際にファイル名を入力されたファイル名にして出力したい
前提
rubyを使ってcsvファイルで出力するメモアプリのようなものを作成中です。
ファイルを出力する際にファイル名をコンソール上で入力し出力したい。
発生している問題・エラーメッセージ
memo.rb:22:in made_memo': undefined local variable or method
name' for main:Object (NameError)
エラーメッセージ
該当のソースコード
require "csv"
コンソールで入力
def make_memo
print"出力するコンテンツ:"
contents=gets.chomp
{"contents"=>contents}
end
新規ファイルで出力
def made_memo(memo)
print"ファイル名:"
name=gets.chomp
File.rename("memo.csv",name.csv)
CSV.open(name.csv, "w") do |csv|
csv<<[memo]
end
end
ファイルの末尾に追加
def add_memo(memo)
puts "内容:"
CSV.open(name.csv, "a" ) do |csv|
csv<<[memo]
end
end
memos=[]
while true
puts"新規作成は[1]"
puts"CSVファイルの編集は[2]"
puts"終了は[end]"
mode=gets.chomp
if mode=="1"
memos.push(make_memo)
made_memo(memos)
elsif mode=="2"
memos.push(make_memo)
add_memo(memos)
elsif mode!="1" && mode!="2" && mode!="end"
puts"不明な入力です。再入力して下さい。"
else
mode=="end"
break
end
end
試したこと
名前を入力する用にメソッドを別に記載し試しましたが、同じエラーが出ました。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2023/11/18 14:05