Дополнительная кнопка отображается при переборе рельсовых объектов - PullRequest
0 голосов
/ 25 сентября 2018

Я столкнулся с проблемой, когда на странице отображается дополнительная кнопка «вверх» и «вниз».Как я могу это исправить?enter image description here Мой вид выглядит следующим образом:

<% @group.posts.each do |p| %>

<tr>
  <td>
    <%= p.body %>
  </td>

  <td>
    <div>
      <button type="button" class="btn btn-default btn-sm">
        <span class="glyphicon-arrow-up">Up</span>
      </button>
      <%= p.votes %>
      <button type="button" class="btn btn-default btn-sm">
        <span class="glyphicon-arrow-down">Down</span>
      </button>
    </div>
  </td>

</tr>

<% end %>

Мой контроллер:

def show
  @group = Group.find_by_name(params[:name])
  @post = @group.posts.new
end

Ответы [ 2 ]

0 голосов
/ 25 сентября 2018

Так как вы делаете @post = @group.posts.new в контроллере.Он добавляет пустой объект Post.

Вы можете просто перезагрузить его перед повторением reload => @group.posts.reload.each do |p|

0 голосов
/ 25 сентября 2018

Позвонив по номеру

@group.posts.new

, вы добавляете в группу пустой пост, для которого вы видите обработанные кнопки.

Вы можете назначить все посты ранее другой переменной вваш контроллер и использовать его для рендеринга всех постов

@posts = @group.posts.to_a

или путем инициализации @post немного по-другому,

@post = Post.new(group: @group)

В качестве альтернативы, вы можете отфильтровать посты, которые вы рендеритекнопки для:

@group.posts.select(&:persisted?).each do |p|
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...