Rails 4.2でJBuilder(バージョン〜> 2.0)を使用してJSON部分をレンダリングする際に問題が発生しました。これは、ファイルが存在するにもかかわらず、ActionViewに部分エラーが見つからないことを示しています。私が提供するパスを無視して、デフォルトのマジックパスを検索しているようです。私は部分を魔法の道に置くことはそれを修正するだろうが、いくつかの理由から、それがどこにあるのかを正しく把握しておくことが望ましいだろうことを認識しています。部分は、my/viewsディレクトリ構造内の別の場所(正確には/views/api/task_templates/_task_template.json.jbuilder
)から正しく検出されています。Rails/JBuilderで既存ファイルの部分エラーが見つかりません
部分(_task_template.json.jbuilder)そのものであるメインJBuilderのファイル、:
json.task_files task_template.task_files.each do |file|
json.partial! file, partial: 'api/task_files/task_file', as: :task_file
end
一部のファイル(_task_file.json.jbuilder):
json.(task_file, :id, :file_type, :name, :original_path, :image_path, :icon, :organization_id, :viewer)
エラーメッセージ:
ActionView::Template::Error:
Missing partial api/v1/task_files/_task_file with {:locale=>[:en], :formats=>[:json], :variants=>[], :handlers=>[:jbuilder]}. Searched in:
* "/Users/lucy/trail-app/app/views"
* "/Users/lucy/.rvm/gems/[email protected]/gems/sidekiq_monitor-0.1.7/app/views"
* "/Users/lucy/.rvm/gems/[email protected]/gems/devise_invitable-1.7.0/app/views"
* "/Users/lucy/.rvm/gems/[email protected]/gems/devise-4.2.0/app/views"
これは私のディレクトリ構造です:
/views > /api > /task_files > _task_file.json.jbuilder (THE MISSING PARTIAL)
> /v1 > /task_templates > _task_template.json.jbuilder (THE MAIN FILE)
./v1/task_files/_task_fileを試すことができますか? –
これを部分的な経路として提供してください。そのパスにはファイルがありません。タスクファイル部分のみが '/ views/api/task_files/_task_file.json.jbuilder'にあります。 – Squig
部分パスとしてYesです。 ./task_files/_task_fileか、単にtask_files/_task_fileを試してください。 –