Невозможно передать переменные в частичное (Rails5)

У меня такая проблема - есть партиал и я не могу передать туда переменную:

частично у меня есть;

<%= object.title %>

Как я передаю переменные:

<%= render :partial => 'shared/post_preview', :locals => { :object => article } %>

ошибка, которую я вижу, выглядит так

**undefined local variable or method `object'**

Любые идеи? пробовал уже вроде все...

также пробовал:

  <%= render :partial => 'shared/post_preview', :object => article %>
  <%= render 'shared/post_preview', :object => article %>
  <%= render :partial => 'shared/post_preview', :object => article %>

каждый раз вижу одну и ту же ошибку...


person Neon_10    schedule 04.09.2016    source источник


Ответы (2)


Используйте это:

Предположим, вы определили переменную экземпляра @article в действии.

<%= render 'shared/post_preview', object: @article  %>

Это должно решить вашу проблему.

person Pradeep Sapkota    schedule 06.09.2016
comment
Нет, проблема заключалась в том, что код с комментариями содержал Ruby, а стандартное комментирование, работающее для html, например ‹!-- --›, не работает для части кода Ruby, - person Neon_10; 06.09.2016

проблема была в закомментированном коде в частичном файле. Каким-то образом это было посчитано как настоящий код...

<!--
<div class="row">
  <div class="col-lg-6">
    <%= render :partial => 'shared/post_preview' %>
    <%= render :partial => 'shared/post_preview' %>
  </div>
  <div class="col-lg-6">
    <%= render :partial => 'shared/post_preview' %>
    <%= render :partial => 'shared/post_preview' %>
  </div>
</div>
-->
person Neon_10    schedule 04.09.2016
comment
Конечно, поскольку <!-- — это просто html-комментарий, а не ruby-комментарий, поэтому erb все равно будет оцениваться для создания комментируемого html. Если вы хотите прокомментировать код, попробуйте использовать #, что-то вроде <%=# render :partial => 'shared/post_preview' %>. - person Alter Lagos; 05.09.2016