[解決済み] ルビーです。そのようなファイルやディレクトリはありません @ rb_sysopen - testfile (Errno::ENOENT)
2022-02-13 07:53:07
質問
あるファイルに何かを書き込みたい。
# where userid is any intger [sic]
path = Rails.root + "public/system/users/#{user.id}/style/img.jpg"
File.open(path, 'wb') do |file|
file.puts f.read
end
このコードを実行すると、こんなエラーが出ます。このフォルダが存在しないことは分かっているのですが
File.open
と
w
モードは、ファイルが存在しない場合、新しいファイルを作成します。
なぜこれがうまくいかないのでしょうか?
どうすればいいですか?
File.open(..., 'w')
は、ファイルが存在しない場合、ファイルを作成します。誰もそのファイルのためにディレクトリツリーを作成することを約束しませんでした。
もうひとつは
File#join
を使うことで、文字列の連結ではなく、ディレクトリのパスを構築することができます。
path = File.join Rails.root, 'public', 'system', 'users', user.id.to_s, 'style'
FileUtils.mkdir_p(path) unless File.exist?(path)
File.open(File.join(path, 'img.jpg'), 'wb') do |file|
file.puts f.read
end
関連
-
[解決済み] Rubyのフィボナッチ数列(再帰)
-
[解決済み] ルビーです。そのようなファイルやディレクトリはありません @ rb_sysopen - testfile (Errno::ENOENT)
-
[解決済み] Ruby on railsで改行せずにコンソールに "puts "を使用するにはどうすればよいですか?
-
[解決済み] rubyでディレクトリからすべてのファイルを要求する最良の方法?
-
[解決済み] Ruby on Railsでホスト名やIPを取得する
-
[解決済み] Rubyのダブルコロン `::` とは何ですか?
-
[解決済み] プロキシ(ISA-NTLM)の後ろからRuby Gemsをアップデートする方法
-
[解決済み] 構文エラー、予期しない ',', 期待する ')' 。
-
[解決済み] Ruby 1.8.7 ハッシュを文字列に変換する
-
[解決済み] Rubyでファイルに書き込むには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】rubyの1e18という数字は何を意味するのか?
-
[解決済み】macOSでrbenvをアンインストールする方法とは?
-
[解決済み] RubyのNameError
-
[解決済み] ルビー階乗関数
-
[解決済み] Ruby、スタックレベルが深すぎる (SystemStackError)
-
[解決済み] Rubyでnil値をマッピングして削除する方法
-
[解決済み] Rubyでリモートホストの到達可能性をpingで確認する方法
-
[解決済み] gemのインストール中に "permission denied "エラーが発生するのはなぜですか?
-
[解決済み] Ruby の `print` から bash スクリプトを呼び出して echo するにはどうしたらいいですか?
-
[解決済み] 配列からランダムに選択する方法は?