レールが部分的に見つかりません
概要
次のようなフォルダー構造があります
project/app/views/api/users/_user.json.jbuilder
エラーは
Searched in:
* "/Users/name/Desktop/etc/etc/project/app/views"
ActionView::MissingTemplate - Missing partial api/users/_user.json.jbuilder with {:locale=>[:en], :formats=>[:html], :variants=>[], :handlers=>[:raw, :erb, :html, :builder, :ruby, :jbuilder]}.
レンダリングしようとしています
<script type="text/javascript">
window.currentUser = <%= render("api/users/user.json.jbuilder",
user: current_user).html_safe %>
</script>
まったく同じコードが Rails 5.xx では機能しましたが、現在は Rails 7.xx を使用しているため、このエラーで行き詰まっています。
解決策
Rails 7 では、ファイルに拡張子を含めるとエラーが発生します。
<%= render partial: "api/users/user",
formats: [:json],
handlers: [:jbuilder],
locals: { user: current_user } %>
Works and Rails は部分的なものを見つけることができます。この場合、エラー メッセージはまったく役に立ちません。正しく実行しているように見えるだけです。また、部分レンダリングに渡す必要があるオプション ハッシュに関するドキュメントがまったく見つかりません。 Github Copilot が自動的にそれを補完してくれたので、それに関する情報を見つけようとしてインターネットを探しましたが、見つかりませんでした。
エラーメッセージを見るだけだと思います
{:locale=>[:en], :formats=>[:html], :variants=>[], :handlers=>[:raw, :erb, :html, :builder, :ruby, :jbuilder]}
次に、オプションがロケール、フォーマット、バリアント、ハンドラーであることに気づきましたか?
ここで答えが見つかりました Rails 7 の一部が欠落しています