1. ホーム
  2. ruby-on-rails

[解決済み] パーシャルが存在するかどうかをチェックするRailsの関数はありますか?

2022-11-19 23:04:31

質問

存在しないパーシャルをレンダリングすると、Exceptionが発生します。レンダリングする前にパーシャルが存在するかどうかをチェックし、存在しない場合は別のものをレンダリングしたいと思います。.erbファイルに以下のコードを書きましたが、もっと良い方法があるはずです。

    <% begin %>
      <%= render :partial => "#{dynamic_partial}" %>
    <% rescue ActionView::MissingTemplate %>
      Can't show this data!
    <% end %>

どのように解決するのですか?

現在、Rails 3/3.1プロジェクトで以下のように使用しています。

lookup_context.find_all('posts/_form').any?

私が見た他のソリューションに対する利点は、これはrailsのルートだけでなく、すべてのビューパスを検索することです。私は多くのrailsエンジンを持っているので、これは私にとって重要なことです。

これはRails 4でも動作します。