Я тоже боролся с этим. Это метод, который я в конечном итоге использовал:
<%= render :partial => "#{dynamic_partial}" rescue nil %>
По сути, если частичное не существует, ничего не делать. Хотели ли вы что-то напечатать, если часть отсутствует?
Редактировать 1: О, я не могу понять прочитанное. Вы сказали, что хотите сделать что-то еще. В таком случае, как насчет этого?
<%= render :partial => "#{dynamic_partial}" rescue render :partial => 'partial_that_actually_exists' %>
или
<%= render :partial => "#{dynamic_partial}" rescue "Can't show this data!" %>
Редактировать 2:
Альтернатива: проверка существования частичного файла:
<%= render :partial => "#{dynamic_partial}" if File.exists?(Rails.root.join("app", "views", params[:controller], "_#{dynamic_partial}.html.erb")) %>