bin/rails cache_digests

Viewのテンプレートが依存しているパーシャルを一覧表示するコマンド。

  • bin/rails cache_digests:dependencies TEMPLATE=テンプレート名
    • 指定したテンプレートが依存しているパーシャルを一覧表示
  • bin/rails cache_digests:nested_dependencies TEMPLATE=テンプレート名
    • 指定したテンプレートが依存しているパーシャルを再起的に一覧表示

例として以下のViewがあるとする。

<%# app/views/user_accounts/edit.html.erb %>
<%= render 'form', user_account: @user_account %>
<%# app/views/user_accounts/_form.html.erb %>
<%= render 'foo' %>
<%# app/views/user_accounts/_foo.html.erb %>
<%= render 'bar' %>

_bar.html.erbは空ファイルとする。

この状態でbin/rails cache_digests:dependencies TEMPLATE=user_accounts/editを実行すると以下の結果になる。

[
  "user_accounts/form"
]

さらにbin/rails cache_digests:dependencies TEMPLATE=user_accounts/editを実行すると以下の結果になる。

[
  {
    "user_accounts/form": [
      {
        "user_accounts/foo": [
          "user_accounts/bar"
        ]
      }
    ]
  }
]

ただし、_bar.html.erbパーシャルがviews/application/ディレクトリあったとしても上記と同じ出力結果となり、user_accounts/_bar.html.erbがないためそこで探索が打ち切られてしまう(views/application/ディレクトリについてはレイアウトとレンダリング - Railsガイド # 2.2.13.5 テンプレートの継承を参照)。

<%= render 'application/bar' %>のようになっていれば、views/application/ディレクトリに移って探索が続けられる。