У меня есть следующий код в app/views/foo/index.rhtml
:
<% render :layout => 'bar_group', :locals => {:id => 'gold_bars'} do %>
<%= render :partial => "bar_score_box", :locals => {:scores => scores} %>
<%= render :partial => "common/translate_bar_link", :locals => {:bar => bar} %>
<% end %>
_bar_group.rhtml
и _bar_score_box.rhtml
и в app/views/foo/
, но _translate_bar_link.rhtml
в app/views/common/
.
Это представление прекрасно работает, когда я запускаю приложение Rails в режиме разработки и запускаю его через веб-браузер.Но когда я запускаю функциональный тест, который попадает в представление, я получаю такую ошибку:
Exception: Missing template _translate_bar_link.erb in view path
app/views/foo/_bar_group.rhtml:2
app/views/foo/_bar_group.rhtml
выглядит примерно так:
<div id="<%= id %>" class="tile">
<%= yield %>
</div>
Итак, ошибкасообщается в строке yield
.
Опять же, это прекрасно работает через сервер Rails, но не при запуске функционального теста.Кто-нибудь знает, что здесь может происходить?
Обновление: Оказывается, у меня был второй вызов рендеринга для того же самого частичного позже, на мой взгляд, который я забыл изменитьна common/translate_bar_link
, когда я переместил партиал с app/views/foo
на app/views/common
:
<%= render :partial => "translate_bar_link", :locals => {:bar => bar} %>
Ошибка оператора.Извините, что потратил ваше время.Пометка этого вопроса для удаления.