ActionView::Missing Template エラー 

 

https://i.gyazo.com/b5afe847f107d6bdd5fac9354c41f3d7.png

 部分テンプレートのviewを記載し、renderで呼び出したらActionView::Missing Template エラー が出てしまいました。

 

原因と解決

https://i.gyazo.com/eb78cd4efc0ad00b48af902c1678ea99.png

 Missing partialというエラーが出ていたことと、以下のrender部分にエラーが出ていたので該当ファイルを確認。

 

https://i.gyazo.com/0bd306a734a7c194f215f5cb1dceec45.png

views/bookmarks/_bookmark_area.html.erb

<% if current_user.bookmark?(board) %>
<%= render 'bookmarks/unbookmark', { board: board } %>
<% else %>
<%= render 'bookmarks/bookmark', { board: board } %>
<% end %>

_bookmark_area.html.erbにエラーで表示された<%= render 'bookmark', { board: board } %>が記載されており、_bookmarkをrenderで呼び出しています。

同じ階層内だから'bookmark'で合っているはずなんだけどなーと悩んでいました。

 

renderの親元を辿ると、

https://i.gyazo.com/e036d896b860c9d4162a03a613bfaa95.png

boards/_board/html.erb

<%= render 'bookmarks/bookmark_area', board: board %>

 

views/bookmarks/_bookmark_area.html.erb

<% if current_user.bookmark?(board) %>
<%= render 'bookmarks/unbookmark', { board: board } %>
<% else %>
<%= render 'bookmarks/bookmark', { board: board } %>
<% end %>

boardsファイル内にrenderされていたので、上記のように記載する必要があった。

 

他の解決方法

bookmarksファイル内のerbをboardsファイル内に全て移せば、最初の書き方でもOK

 

最後に

エラー分の内容を修正できてOKだけではなく、他に解決できる方法がないか模索することが大事ですね。