Отсутствует частичное отображение в рельсах - PullRequest
0 голосов
/ 10 марта 2020

Я создаю частичку, которая вызывает _topics_list.form. html .erb, и у меня есть код

<table class="list" cellspaceing="0">
  <thead class="head_list">
  <tr>
    <th class="column">Name</th>
    <th class="column">Description</th>
  </tr>
  </thead>
  <% @topics.each do |topic| %>
    <tr class="row">
      <td data-label="Name" class="column first"><%= topic.name %></td>
      <td data-label="Description" class="column column_problem">
        <%= link_to topic.description, topic_path(topic), class:"link_for_column_problem" %>
      </td>
      <td data-label="Date" class="column"><%= topic.created_at.strftime("%d %b, %Y") %></td>
    </tr>
  <% end %>
</table>

Также я связываю эту частичку с моим индексным файлом с помощью <%= render 'topics_list'%> Когда я пробую это, у меня есть ошибка

Missing partial topics/_topics_list, application/_topics_list with {:locale=>[:en], :formats=>[:html], :variants=>[], :handlers=>[:raw, :erb, :html, :builder, :ruby, :arb, :jbuilder]}. Searched in:
  * "/home/dse/BlackListV2/app/views"
  * "/home/dse/.rvm/gems/ruby-2.7.0/gems/activeadmin-2.6.1/app/views"
  * "/home/dse/.rvm/gems/ruby-2.7.0/gems/kaminari-core-1.2.0/app/views"
  * "/home/dse/.rvm/gems/ruby-2.7.0/gems/devise-4.7.1/app/views"
  * "/home/dse/.rvm/gems/ruby-2.7.0/gems/actiontext-6.0.2.1/app/views"
  * "/home/dse/.rvm/gems/ruby-2.7.0/gems/actionmailbox-6.0.2.1/app/views"

ОБНОВЛЕНИЕ

<p id="notice"><%= notice %></p>

<h1 class="request_headline">All Topics</h1>
<%= render 'topics_list'%>

<table>
  <thead>
    <tr>
      <th colspan="3"></th>
    </tr>
  </thead>

  <tbody>
    <% @topics.each do |topic| %>
      <tr>
        <td><%= link_to 'Show', topic %></td>
        <td><%= link_to 'Edit', edit_topic_path(topic) %></td>
        <td><%= link_to 'Destroy', topic, method: :delete, data: { confirm: 'Are you sure?' } %></td>
      </tr>
    <% end %>
  </tbody>
</table>

<br>

<%= link_to 'New Topic', new_topic_path %>

Код с частичным отображением

Ответы [ 2 ]

0 голосов
/ 10 марта 2020

Ваше частичное имя _topics_list.form.html.erb. Чтобы сделать это, вам нужно позвонить render 'topics_list.form', а не render 'topics_list'.

0 голосов
/ 10 марта 2020

Попробуйте изменить

<p id="notice"><%= notice %></p>

<h1 class="request_headline">All Topics</h1>
<%= render 'topics_list'%>

на

<p id="notice"><%= notice %></p>

<h1 class="request_headline">All Topics</h1>
<%= render 'topics/topics_list' %>

Кроме того, хорошей идеей будет всегда передавать локальные переменные в партиалы вместо использования глобальных переменных, таким образом, вы получаете абсолютный контроль значений в частичных. <%= render 'topics/topics_list', topics: @topics %>

и затем при частичном использовании

<table class="list" cellspaceing="0">
  <thead class="head_list">
  <tr>
    <th class="column">Name</th>
    <th class="column">Description</th>
  </tr>
  </thead>
  <% topics.each do |topic| %>
    <tr class="row">
      .....
      .....
    </tr>
  <% end %>
</table>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...