Почему разделяемое частичное представление во вложенном макете не работает в функциональном тесте Rails? - PullRequest
0 голосов
/ 09 июня 2011

У меня есть следующий код в 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} %>

Ошибка оператора.Извините, что потратил ваше время.Пометка этого вопроса для удаления.

1 Ответ

1 голос
/ 09 июня 2011

Попробуйте поэкспериментировать с путем, используемым в ваших инструкциях рендеринга::Иногда бывает полезно поставить расширение файла, например, так (обратите внимание на .rhtml):

<% render :layout => 'bar_group', :locals => {:id => 'gold_bars'} do %>
  <%= render :partial => "bar_score_box", :locals => {:scores => scores} %>
  <%= render :partial => "/common/translate_bar_link.rhtml", :locals => {:bar => bar} %>
<% end %>

Я не уверен, какую версию Rails вы используете, но, возможно, вы можете переименовать common/translate_bar_link.rhtmlдо common/translate_bar_link.html.erb

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...